public class NewValueClassFilterIncludingSubclasses extends ClassFilterIncludingSubclasses
Notification.getNewValue()
to an
EObject.eClass()
and all subclasses of this EClass
. If the
new value is a collection then this filter matches if at least one of the
collection's elements is matched.
When several such filters are combined in an AndFilter
, the
AndFilter
matches if all of its operand filters match. This does not
require the individual NewValueClassFilterIncludingSubclasses
s to
match based on the same element in case the new value happens to be a
collection. For example, assume there are two classes X
and
Y
with a class Z
that has both, X
and
Y
as its superclasses (multiple inheritance). Assume there is an
AndFiter
with two NewValueClassFilterIncludingSubclasses
s
inside, one matching X
, the other matching Y
. If
only a single element is the new value of a Notification
, the
AndFilter
matches the notification if and only if the new value
conforms to both, X
and Y
, for example if its type
is Z
. However, if there are two elements in the new value
collection of the Notification
, one of type X
and the
other of type Y
, the first
NewValueClassFilterIncludingSubclasses
matches because of the
X
element, and the second
NewValueClassFilterIncludingSubclasses
matches because of the
Y
element and hence the AndFilter
matches. However, no
single element in the new value collection fulfills both criteria.
wantedClass
Constructor and Description |
---|
NewValueClassFilterIncludingSubclasses(org.eclipse.emf.ecore.EClass subClass,
boolean negated) |
Modifier and Type | Method and Description |
---|---|
NewValueClassFilterIncludingSubclasses |
clone() |
boolean |
equals(java.lang.Object obj) |
int |
hashCode() |
boolean |
matchesFor(org.eclipse.emf.common.notify.Notification event)
Tests if the incoming
Notification matches the intern specification |
java.lang.String |
toString() |
matches
getFilterCriterion, getWantedClass
expandNewAndOldValueCollections, isNegated, setNegated
public NewValueClassFilterIncludingSubclasses(org.eclipse.emf.ecore.EClass subClass, boolean negated)
public boolean equals(java.lang.Object obj)
equals
in class ClassFilter
public int hashCode()
hashCode
in class ClassFilterIncludingSubclasses
public boolean matchesFor(org.eclipse.emf.common.notify.Notification event)
EventFilter
Notification
matches the intern specificationmatchesFor
in interface EventFilter
matchesFor
in class ClassFilter
event
- the Notification
to controlNotification
matches the intern specificationpublic java.lang.String toString()
toString
in class ClassFilterIncludingSubclasses
public NewValueClassFilterIncludingSubclasses clone()
clone
in interface EventFilter
clone
in class ClassFilterIncludingSubclasses