public final class InstancesDiff
extends java.lang.Object
InstancesDiff
allows to combine and filter two collections of InstanceDescription
instances,
an "old" collection and a "new" collection.
The comparison between InstanceDescription
instances is done only on the basis of the Sling identifier.
Two instances with the same Sling identifier are considered as equal.
Note: Each collection must contain only unique instances (no two instances with the same Sling identifier).
Using the InstancesDiff
with collections containing duplicated Sling id
will throw an IllegalArgumentException
.
Modifier and Type | Class and Description |
---|---|
class |
InstancesDiff.InstanceCollection
The
InstanceCollection collection allows to filter the instances using a set of custom filter
either implementing InstanceFilter or pre-defined ones. |
Constructor and Description |
---|
InstancesDiff(ClusterView oldView,
ClusterView newView)
Create a new
InstancesDiff based on the instances from the old and
new ClusterView cluster views provided. |
InstancesDiff(java.util.Collection<T> oldInstances,
java.util.Collection<T> newInstances)
Create a new
InstancesDiff based on the provided old and
new Collection collections of instances. |
InstancesDiff(TopologyEvent event)
Create a new
InstancesDiff based on the instances from the old and
new TopologyView topology views contained in the TopologyEvent event provided. |
InstancesDiff(TopologyView oldView,
TopologyView newView)
Create a new
InstancesDiff based on the instances from the old and
new TopologyView topology views provided. |
Modifier and Type | Method and Description |
---|---|
InstancesDiff.InstanceCollection |
added()
Returns the
InstanceCollection collection containing the InstanceDescription instances that are
contained in the new collection but not in the old collection. |
InstancesDiff.InstanceCollection |
all(boolean retainFromNewCollection)
Returns the
InstanceSet set containing the InstanceDescription instances that are
contained in either the old or the new collection. |
InstancesDiff.InstanceCollection |
removed()
Returns the
InstanceCollection collection containing the InstanceDescription instances that are
contained in the old collection but not in the new collection. |
InstancesDiff.InstanceCollection |
retained(boolean retainFromNewCollection)
Returns the
InstanceSet collection containing the InstanceDescription instances that are
contained in both the old collection and the new collection. |
InstancesDiff.InstanceCollection |
retained(boolean retainFromNewCollection,
boolean propertyChanged)
Returns the
InstanceCollection collection containing the InstanceDescription instances that are
contained in both the old and the new collections. |
public InstancesDiff(@Nonnull TopologyEvent event)
InstancesDiff
based on the instances from the old and
new TopologyView
topology views contained in the TopologyEvent
event provided.event
- the non null
event from which the old and new topology views are used for computing.
If either of the topology views are null
, then they will be substituted by an
empty collection of instances.java.lang.IllegalArgumentException
- if either of the collections contains duplicated Sling identifiers.public InstancesDiff(@Nonnull TopologyView oldView, @Nonnull TopologyView newView)
InstancesDiff
based on the instances from the old and
new TopologyView
topology views provided.oldView
- the non null
old topology view from which the old collection is used for computing.newView
- the non null
new topology view form which the new collection is used for computing.java.lang.IllegalArgumentException
- if either of the collections contains duplicated Sling identifiers.public InstancesDiff(@Nonnull ClusterView oldView, @Nonnull ClusterView newView)
InstancesDiff
based on the instances from the old and
new ClusterView
cluster views provided.oldView
- the non null
old cluster view used for computing.newView
- the non null
new cluster view used for computing.java.lang.IllegalArgumentException
- if either of the collections contains duplicated Sling identifiers.public InstancesDiff(@Nonnull java.util.Collection<T> oldInstances, @Nonnull java.util.Collection<T> newInstances)
InstancesDiff
based on the provided old and
new Collection
collections of instances.T
- the type of instance which must extend InstanceDescription
.oldInstances
- the non null
old collection of instances used for computing.newInstances
- the non null
new collection of instances used for computing.java.lang.IllegalArgumentException
- if either of the collections contains duplicated Sling identifiers.@Nonnull public InstancesDiff.InstanceCollection all(boolean retainFromNewCollection)
InstanceSet
set containing the InstanceDescription
instances that are
contained in either the old or the new collection.
For InstanceDescription
instances contained in both the old and
the new collections, the method will retain those from either of the collections
depending on the parameter #retainFromNewView.
retainFromNewCollection
- true
in order to retain the instances from the new collection ;
false
in order to retain the instances from the old collection.InstanceCollection
collection containing the InstanceDescription
instances
from both collections.@Nonnull public InstancesDiff.InstanceCollection added()
InstanceCollection
collection containing the InstanceDescription
instances that are
contained in the new collection but not in the old collection.InstanceCollection
collection containing the instances in the new
topology collection but not in the old collection.@Nonnull public InstancesDiff.InstanceCollection removed()
InstanceCollection
collection containing the InstanceDescription
instances that are
contained in the old collection but not in the new collection.InstanceSet
set containing the instances in the old collection but not in the new collection.@Nonnull public InstancesDiff.InstanceCollection retained(boolean retainFromNewCollection)
InstanceSet
collection containing the InstanceDescription
instances that are
contained in both the old collection and the new collection.
The method will retain the InstanceDescription
instances from either of the collections
depending on the parameter #retainFromNewView.
retainFromNewCollection
- true
in order to retain the instances from the new collection ;
false
in order to retain the instances from the old collection.InstanceCollection
collection containing the InstanceDescription
instances
contained in both collections.@Nonnull public InstancesDiff.InstanceCollection retained(boolean retainFromNewCollection, boolean propertyChanged)
InstanceCollection
collection containing the InstanceDescription
instances that are
contained in both the old and the new collections.
The method will retain the InstanceDescription
instances from either of the collections
depending on the parameter #retainFromNewView.
retainFromNewCollection
- true
in order to retain the instances from the new collection ;
false
in order to retain the instances from the old collection.propertyChanged
- true
in order to keep only the instances which
properties have changed between the old and new collections ;
false
in order to keep only the instances which properties have not changed.InstanceCollection
collection containing the InstanceDescription
instances
contained in both views.Copyright © 2018 The Apache Software Foundation. All rights reserved.