private CategoryEvent updateCategory(Category category) { Set categoryActivityBindings = (Set) categoryActivityBindingsByCategoryId.get(category.getId()); boolean categoryActivityBindingsChanged = category.setCategoryActivityBindings( categoryActivityBindings != null ? categoryActivityBindings : Collections.EMPTY_SET); CategoryDefinition categoryDefinition = (CategoryDefinition) categoryDefinitionsById.get(category.getId()); boolean definedChanged = category.setDefined(categoryDefinition != null); boolean nameChanged = category.setName(categoryDefinition != null ? categoryDefinition.getName() : null); boolean descriptionChanged = category.setDescription( categoryDefinition != null ? categoryDefinition.getDescription() : null); if (categoryActivityBindingsChanged || definedChanged || nameChanged || descriptionChanged) { return new CategoryEvent( category, categoryActivityBindingsChanged, definedChanged, descriptionChanged, nameChanged); } return null; }