@Override public void write(LayoutTypeDefinition entity, JsonGenerator jg) throws IOException { jg.writeStartObject(); jg.writeStringField("name", entity.getName()); List<String> aliases = entity.getAliases(); if (CollectionUtils.isNotEmpty(aliases)) { writeSerializableListField("aliases", aliases, jg); } Map<String, String> templates = entity.getTemplates(); if (MapUtils.isNotEmpty(templates)) { writeSerializableMapField("templates", new TreeMap<>(templates), jg); } LayoutTypeConfiguration configuration = entity.getConfiguration(); if (configuration != null) { writeEntityField("configuration", configuration, jg); } jg.writeEndObject(); }
@Override // overridden to handle aliases public synchronized void addContribution(LayoutTypeDefinition contrib) { super.addContribution(contrib); List<String> aliases = contrib.getAliases(); if (aliases != null) { for (String alias : aliases) { FragmentList<LayoutTypeDefinition> head = addFragment(alias, contrib); contributionUpdated(alias, head.merge(this), contrib); } } }
@Override // overridden to handle aliases public synchronized void removeContribution(LayoutTypeDefinition contrib, boolean useEqualsMethod) { super.removeContribution(contrib, useEqualsMethod); List<String> aliases = contrib.getAliases(); if (aliases != null) { for (String alias : aliases) { FragmentList<LayoutTypeDefinition> head = removeFragment(alias, contrib, useEqualsMethod); if (head != null) { LayoutTypeDefinition result = head.merge(this); if (result != null) { contributionUpdated(alias, result, contrib); } else { contributionRemoved(alias, contrib); } } } } }