private Map partitionRetained()

in src/main/java/org/apache/sling/discovery/commons/InstancesDiff.java [247:261]


    private Map<String, InstanceDescription> partitionRetained(boolean retainFromNewCollection, boolean propertyChanged) {
        Map<String, InstanceDescription> partition = new HashMap<String, InstanceDescription>();
        for (Map.Entry<String, InstanceDescription> oldEntry : oldInstances.entrySet()) {
            String slingId = oldEntry.getKey();
            InstanceDescription newDescription = newInstances.get(slingId);
            if(newDescription != null) {
                InstanceDescription oldDescription = oldEntry.getValue();
                boolean propertiesSame = newDescription.getProperties().equals(oldDescription.getProperties());
                if ((propertiesSame && ! propertyChanged) || (! propertiesSame && propertyChanged)) {
                    partition.put(slingId, retainFromNewCollection ? newDescription : oldDescription);
                }
            }
        }
        return partition;
    }