Package org.openjdk.jmc.common.item
Class ItemFilters
- java.lang.Object
-
- org.openjdk.jmc.common.item.ItemFilters
-
public class ItemFilters extends java.lang.ObjectMethods for creating item filters.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classItemFilters.AttributeFilter<M>static classItemFilters.AttributeValue<M>static classItemFilters.BooleanFilterprivate static classItemFilters.Compare<M extends java.lang.Comparable<? super M>>static classItemFilters.Compositestatic classItemFilters.Containsprivate static classItemFilters.Equals<M>static classItemFilters.HasAttribute<M>private static classItemFilters.IsNotNull<M>private static classItemFilters.IsNull<M>static classItemFilters.Matchesprivate static classItemFilters.MemberOf<M>static classItemFilters.Notstatic classItemFilters.NotContainsprivate static classItemFilters.NotEquals<M>static classItemFilters.NotHasAttribute<M>static classItemFilters.NotMatchesprivate static classItemFilters.RangeMatches<M extends java.lang.Comparable<? super M>>static classItemFilters.Typestatic classItemFilters.TypeMatchesstatic classItemFilters.Types
-
Constructor Summary
Constructors Constructor Description ItemFilters()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static IItemFilterall()static IItemFilterand(IItemFilter... filters)static <V extends java.lang.Comparable<V>>
IItemFilterbuildComparisonFilter(PersistableItemFilter.Kind comparisonKind, ICanonicalAccessorFactory<V> attribute, V value)static <V> IItemFilterbuildEqualityFilter(PersistableItemFilter.Kind comparisonKind, ICanonicalAccessorFactory<V> attribute, V value)static <V> IItemFilterbuildExistenceFilter(PersistableItemFilter.Kind comparisonKind, ICanonicalAccessorFactory<V> attribute, V value)static IItemFilterbuildStringFilter(PersistableItemFilter.Kind comparisonKind, ICanonicalAccessorFactory<java.lang.String> attribute, java.lang.String value)static <M extends java.lang.Comparable<? super M>>
IItemFiltercenterContainedIn(ICanonicalAccessorFactory<IRange<M>> rangeAttribute, IRange<M> rangeLimit)Match a range according toRangeMatchPolicy.CENTER_CONTAINED_IN_RIGHT_OPEN.static IItemFiltercontains(ICanonicalAccessorFactory<java.lang.String> attribute, java.lang.String substring)static IItemFilterconvertToTypes(IItemFilter filter, java.util.List<IType<IItem>> types)static <M> IItemFilterequals(ICanonicalAccessorFactory<M> attribute, M value)static <V> IItemFilterhasAttribute(ICanonicalAccessorFactory<V> attribute)static <M extends java.lang.Comparable<? super M>>
IItemFilterinterval(ICanonicalAccessorFactory<M> attribute, M lowerLimit, boolean lowerClosed, M upperLimit, boolean upperClosed)static <M> IItemFilterisNotNull(ICanonicalAccessorFactory<M> attribute)Creates an item filter that will return true if attribute value exists, and is not null.static <M> IItemFilterisNull(ICanonicalAccessorFactory<M> attribute)Creates an item filter that will return true if attribute value is null, or if the attribute doesn't exist, and false otherwise.static <M extends java.lang.Comparable<? super M>>
IItemFilterless(ICanonicalAccessorFactory<M> attribute, M upperLimit)static <M extends java.lang.Comparable<? super M>>
IItemFilterlessOrEqual(ICanonicalAccessorFactory<M> attribute, M upperLimit)static IItemFiltermatches(ICanonicalAccessorFactory<java.lang.String> attribute, java.lang.String regexp)static <M extends java.lang.Comparable<? super M>>
IItemFiltermatchRange(PersistableItemFilter.Kind kind, ICanonicalAccessorFactory<IRange<M>> rangeAttribute, IRange<M> rangeLimit)static <M extends java.lang.Comparable<? super M>>
IItemFiltermatchRange(RangeMatchPolicy policy, ICanonicalAccessorFactory<IRange<M>> rangeAttribute, IRange<M> rangeLimit)static <M> IItemFiltermemberOf(ICanonicalAccessorFactory<M> attribute, java.util.Set<M> values)static <M extends java.lang.Comparable<? super M>>
IItemFiltermore(ICanonicalAccessorFactory<M> attribute, M lowerLimit)static <M extends java.lang.Comparable<? super M>>
IItemFiltermoreOrEqual(ICanonicalAccessorFactory<M> attribute, M lowerLimit)static IItemFilternone()static IItemFilternot(IItemFilter filter)static IItemFilternotContains(ICanonicalAccessorFactory<java.lang.String> attribute, java.lang.String regexp)static <M> IItemFilternotEquals(ICanonicalAccessorFactory<M> attribute, M value)static <V> IItemFilternotHasAttribute(ICanonicalAccessorFactory<V> attribute)static IItemFilternotMatches(ICanonicalAccessorFactory<java.lang.String> attribute, java.lang.String regexp)private static <M> ItemFilters.CompositeoptimizeOr(ICanonicalAccessorFactory<M> attribute, IItemFilter... filters)static IItemFilteror(IItemFilter... filters)static <M extends java.lang.Comparable<? super M>>
IItemFilterrangeContainedIn(ICanonicalAccessorFactory<IRange<M>> rangeAttribute, IRange<M> rangeLimit)Match a range according toRangeMatchPolicy.CONTAINED_IN_CLOSED.static <M extends java.lang.Comparable<? super M>>
IItemFilterrangeIntersects(ICanonicalAccessorFactory<IRange<M>> rangeAttribute, IRange<M> rangeLimit)Match a range according toRangeMatchPolicy.CLOSED_INTERSECTS_WITH_CLOSED.static IItemFiltertype(java.lang.String typeId)static IItemFiltertype(java.lang.String... typeIds)static IItemFiltertype(java.util.Set<java.lang.String> typeIds)static IItemFiltertypeMatches(java.lang.String typeMatches)
-
-
-
Method Detail
-
type
public static IItemFilter type(java.lang.String typeId)
-
type
public static IItemFilter type(java.lang.String... typeIds)
-
hasAttribute
public static <V> IItemFilter hasAttribute(ICanonicalAccessorFactory<V> attribute)
-
notHasAttribute
public static <V> IItemFilter notHasAttribute(ICanonicalAccessorFactory<V> attribute)
-
type
public static IItemFilter type(java.util.Set<java.lang.String> typeIds)
-
typeMatches
public static IItemFilter typeMatches(java.lang.String typeMatches)
-
equals
public static <M> IItemFilter equals(ICanonicalAccessorFactory<M> attribute, M value)
-
notEquals
public static <M> IItemFilter notEquals(ICanonicalAccessorFactory<M> attribute, M value)
-
isNull
public static <M> IItemFilter isNull(ICanonicalAccessorFactory<M> attribute)
Creates an item filter that will return true if attribute value is null, or if the attribute doesn't exist, and false otherwise. The negated version ofisNotNull(org.openjdk.jmc.common.item.ICanonicalAccessorFactory<M>). Analogous to how java.util.Map.get(key) will return null both if the key is mapped to null, and if the key doesn't exist.- Type Parameters:
M- attribute value type- Parameters:
attribute- attribute to filter on- Returns:
- a filter
-
isNotNull
public static <M> IItemFilter isNotNull(ICanonicalAccessorFactory<M> attribute)
Creates an item filter that will return true if attribute value exists, and is not null. The negated version ofisNull(org.openjdk.jmc.common.item.ICanonicalAccessorFactory<M>)- Type Parameters:
M- attribute value type- Parameters:
attribute- attribute to filter on- Returns:
- a filter
-
all
public static IItemFilter all()
- Returns:
- returns a filter matching everything.
-
none
public static IItemFilter none()
- Returns:
- returns a filter matching nothing.
-
matches
public static IItemFilter matches(ICanonicalAccessorFactory<java.lang.String> attribute, java.lang.String regexp)
-
contains
public static IItemFilter contains(ICanonicalAccessorFactory<java.lang.String> attribute, java.lang.String substring)
-
notMatches
public static IItemFilter notMatches(ICanonicalAccessorFactory<java.lang.String> attribute, java.lang.String regexp)
-
notContains
public static IItemFilter notContains(ICanonicalAccessorFactory<java.lang.String> attribute, java.lang.String regexp)
-
memberOf
public static <M> IItemFilter memberOf(ICanonicalAccessorFactory<M> attribute, java.util.Set<M> values)
-
less
public static <M extends java.lang.Comparable<? super M>> IItemFilter less(ICanonicalAccessorFactory<M> attribute, M upperLimit)
-
lessOrEqual
public static <M extends java.lang.Comparable<? super M>> IItemFilter lessOrEqual(ICanonicalAccessorFactory<M> attribute, M upperLimit)
-
more
public static <M extends java.lang.Comparable<? super M>> IItemFilter more(ICanonicalAccessorFactory<M> attribute, M lowerLimit)
-
moreOrEqual
public static <M extends java.lang.Comparable<? super M>> IItemFilter moreOrEqual(ICanonicalAccessorFactory<M> attribute, M lowerLimit)
-
rangeIntersects
public static <M extends java.lang.Comparable<? super M>> IItemFilter rangeIntersects(ICanonicalAccessorFactory<IRange<M>> rangeAttribute, IRange<M> rangeLimit)
Match a range according toRangeMatchPolicy.CLOSED_INTERSECTS_WITH_CLOSED.- Type Parameters:
M- the type of end points of the ranges- Parameters:
rangeAttribute- the range attribute that should be filtered on (treated as closed)rangeLimit- the limiting range (treated as closed)- Returns:
- a filter that accepts items with attribute values that intersects the limiting range
-
rangeContainedIn
public static <M extends java.lang.Comparable<? super M>> IItemFilter rangeContainedIn(ICanonicalAccessorFactory<IRange<M>> rangeAttribute, IRange<M> rangeLimit)
Match a range according toRangeMatchPolicy.CONTAINED_IN_CLOSED.- Type Parameters:
M- the type of end points of the ranges- Parameters:
rangeAttribute- the range attribute that should be filtered on (treated as right open, unless single point)rangeLimit- the limiting range (treated as closed)- Returns:
- a filter that accepts items with attribute values that are contained in the limiting range
-
centerContainedIn
public static <M extends java.lang.Comparable<? super M>> IItemFilter centerContainedIn(ICanonicalAccessorFactory<IRange<M>> rangeAttribute, IRange<M> rangeLimit)
Match a range according toRangeMatchPolicy.CENTER_CONTAINED_IN_RIGHT_OPEN.- Type Parameters:
M- the type of end points of the ranges- Parameters:
rangeAttribute- the range attribute whose center should be filtered onrangeLimit- the limiting range (treated as right open)- Returns:
- a filter that accepts items with attribute values whose centers are contained in the limiting range
-
matchRange
public static <M extends java.lang.Comparable<? super M>> IItemFilter matchRange(RangeMatchPolicy policy, ICanonicalAccessorFactory<IRange<M>> rangeAttribute, IRange<M> rangeLimit)
-
matchRange
public static <M extends java.lang.Comparable<? super M>> IItemFilter matchRange(PersistableItemFilter.Kind kind, ICanonicalAccessorFactory<IRange<M>> rangeAttribute, IRange<M> rangeLimit)
-
interval
public static <M extends java.lang.Comparable<? super M>> IItemFilter interval(ICanonicalAccessorFactory<M> attribute, M lowerLimit, boolean lowerClosed, M upperLimit, boolean upperClosed)
-
and
public static IItemFilter and(IItemFilter... filters)
-
or
public static IItemFilter or(IItemFilter... filters)
-
optimizeOr
private static <M> ItemFilters.Composite optimizeOr(ICanonicalAccessorFactory<M> attribute, IItemFilter... filters)
-
not
public static IItemFilter not(IItemFilter filter)
-
convertToTypes
public static IItemFilter convertToTypes(IItemFilter filter, java.util.List<IType<IItem>> types)
-
buildEqualityFilter
public static <V> IItemFilter buildEqualityFilter(PersistableItemFilter.Kind comparisonKind, ICanonicalAccessorFactory<V> attribute, V value)
-
buildExistenceFilter
public static <V> IItemFilter buildExistenceFilter(PersistableItemFilter.Kind comparisonKind, ICanonicalAccessorFactory<V> attribute, V value)
-
buildStringFilter
public static IItemFilter buildStringFilter(PersistableItemFilter.Kind comparisonKind, ICanonicalAccessorFactory<java.lang.String> attribute, java.lang.String value)
-
buildComparisonFilter
public static <V extends java.lang.Comparable<V>> IItemFilter buildComparisonFilter(PersistableItemFilter.Kind comparisonKind, ICanonicalAccessorFactory<V> attribute, V value)
-
-