Example usage for org.springframework.boot.configurationmetadata ConfigurationMetadataRepository getAllGroups

List of usage examples for org.springframework.boot.configurationmetadata ConfigurationMetadataRepository getAllGroups

Introduction

In this page you can find the example usage for org.springframework.boot.configurationmetadata ConfigurationMetadataRepository getAllGroups.

Prototype

Map<String, ConfigurationMetadataGroup> getAllGroups();

Source Link

Document

Return the groups, indexed by id.

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));
            }//from  w w w  .j a  va2 s .  c  om
            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;
}