Example usage for org.springframework.boot.configurationmetadata ConfigurationMetadataGroup getId

List of usage examples for org.springframework.boot.configurationmetadata ConfigurationMetadataGroup getId

Introduction

In this page you can find the example usage for org.springframework.boot.configurationmetadata ConfigurationMetadataGroup getId.

Prototype

public String getId() 

Source Link

Document

Return the id of the group, used as a common prefix for all properties associated to it.

Usage

From source file:demo.config.diff.ConfigDiffGenerator.java

protected ConfigDiffGenerator diffGroup(ConfigDiffResult result, ConfigurationMetadataRepository left,
        ConfigurationMetadataRepository right) {
    List<String> matches = new ArrayList<>();
    Map<String, ConfigurationMetadataGroup> leftGroups = left.getAllGroups();
    Map<String, ConfigurationMetadataGroup> rightGroups = right.getAllGroups();
    for (ConfigurationMetadataGroup leftGroup : leftGroups.values()) {
        String id = leftGroup.getId();
        ConfigurationMetadataGroup rightGroup = rightGroups.get(id);
        if (rightGroup == null) {
            ConfigGroupDiff groupDiff = new ConfigGroupDiff(id, leftGroup, null);
            for (ConfigurationMetadataProperty property : leftGroup.getProperties().values()) {
                groupDiff.register(ConfigDiffType.DELETE,
                        new ConfigPropertyDiff(property.getId(), property, null));
            }/* ww  w.  j av  a 2s  .  c  o  m*/
            result.register(ConfigDiffType.DELETE, groupDiff);
        } else {
            matches.add(id);
            ConfigDiffType diffType = (equals(leftGroup, rightGroup) ? ConfigDiffType.EQUALS
                    : ConfigDiffType.MODIFY);
            result.register(diffType, generateGroupDiff(leftGroup, rightGroup));
        }
    }
    for (ConfigurationMetadataGroup rightGroup : rightGroups.values()) {
        if (!matches.contains(rightGroup.getId())) {
            ConfigGroupDiff groupDiff = new ConfigGroupDiff(rightGroup.getId(), null, rightGroup);
            for (ConfigurationMetadataProperty property : rightGroup.getProperties().values()) {
                groupDiff.register(ConfigDiffType.ADD,
                        new ConfigPropertyDiff(property.getId(), null, property));
            }
            result.register(ConfigDiffType.ADD, groupDiff);
        }
    }
    return this;
}

From source file:demo.config.diff.ConfigDiffGenerator.java

protected ConfigGroupDiff generateGroupDiff(ConfigurationMetadataGroup left, ConfigurationMetadataGroup right) {
    ConfigGroupDiff group = new ConfigGroupDiff(left.getId(), left, right);
    List<String> matches = new ArrayList<>();
    Map<String, ConfigurationMetadataProperty> leftProperties = left.getProperties();
    Map<String, ConfigurationMetadataProperty> rightProperties = right.getProperties();
    for (ConfigurationMetadataProperty leftProperty : leftProperties.values()) {
        String id = leftProperty.getId();
        ConfigurationMetadataProperty rightProperty = rightProperties.get(id);
        if (rightProperty == null) {
            group.register(ConfigDiffType.DELETE,
                    new ConfigPropertyDiff(leftProperty.getId(), leftProperty, null));
        } else {/*w  w w.  ja v a2 s. c  om*/
            matches.add(id);
            group.register(ConfigDiffType.EQUALS, // NICE: handle diff in property def
                    new ConfigPropertyDiff(leftProperty.getId(), leftProperty, rightProperty));
        }
    }
    for (ConfigurationMetadataProperty rightProperty : rightProperties.values()) {
        if (!matches.contains(rightProperty.getId())) {
            group.register(ConfigDiffType.ADD,
                    new ConfigPropertyDiff(rightProperty.getId(), null, rightProperty));
        }
    }
    return group;
}