Class MultiFilter
- All Implemented Interfaces:
TokenFilter,Serializable,Cloneable,Iterable<TokenFilter>,Collection<TokenFilter>,List<TokenFilter>,RandomAccess
A multi filter checks all contained filters with either requiring all of them
or at least one of them to allow the token. It can also be configured to
short-circuit, meaning that it stops checking the filters if the result can't
change anymore.
By default it's a conjunction that doesn't short-circuit
checking all filters to allow the token and continuing even if an earlier
filter has disallowed it. Since filters can have state, it can be desirerable
to notify all of them of all tokens.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.github.douira.glsl_transformer.print.filter.TokenFilter
TokenFilter.TokenChannel -
Field Summary
Fields inherited from class java.util.AbstractList
modCount -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new empty default multi filter.MultiFilter(boolean conjunction, boolean shortCircuit) Creates a new multi filter the behavior options.MultiFilter(int initialCapacity) Creates a new default multi filter with an initial size capacity.MultiFilter(int initialCapacity, boolean conjunction, boolean shortCircuit) Creates a new multi filter with an initial size capacity and the behavior options.MultiFilter(Collection<? extends TokenFilter> subfilters) Creates a new default multi filter with the given list of subfilters.MultiFilter(Collection<? extends TokenFilter> subfilters, boolean conjunction, boolean shortCircuit) Creates a new multi filter with the given list of subfilters and the behavior options. -
Method Summary
Modifier and TypeMethodDescriptionbooleanisTokenAllowed(Token token) Checks if the token should be printed.voidResets the filter's state.voidsetConjunction(boolean conjunction) Sets the conjunction behavior flagvoidsetShortCircuit(boolean shortCircuit) Sets the conjunction short circuit flagMethods inherited from class java.util.ArrayList
add, add, addAll, addAll, clear, clone, contains, ensureCapacity, equals, forEach, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, removeIf, removeRange, replaceAll, retainAll, set, size, sort, spliterator, subList, toArray, toArray, trimToSizeMethods inherited from class java.util.AbstractCollection
containsAll, toStringMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.util.Collection
parallelStream, stream, toArrayMethods inherited from interface java.util.List
containsAll
-
Constructor Details
-
MultiFilter
public MultiFilter(Collection<? extends TokenFilter> subfilters, boolean conjunction, boolean shortCircuit) Creates a new multi filter with the given list of subfilters and the behavior options.- Parameters:
subfilters- The subfilters to add initiallyconjunction- The conjunction flag stateshortCircuit- The short circuit flag state- See Also:
-
MultiFilter
public MultiFilter(int initialCapacity, boolean conjunction, boolean shortCircuit) Creates a new multi filter with an initial size capacity and the behavior options.- Parameters:
initialCapacity- The initial list capacityconjunction- The conjunction flag stateshortCircuit- The short circuit flag state- See Also:
-
MultiFilter
public MultiFilter(boolean conjunction, boolean shortCircuit) Creates a new multi filter the behavior options.- Parameters:
conjunction- The conjunction flag stateshortCircuit- The short circuit flag state- See Also:
-
MultiFilter
Creates a new default multi filter with the given list of subfilters.- Parameters:
subfilters- The subfilters to add initially- See Also:
-
MultiFilter
public MultiFilter(int initialCapacity) Creates a new default multi filter with an initial size capacity.- Parameters:
initialCapacity- The initial list capacity- See Also:
-
MultiFilter
public MultiFilter()Creates a new empty default multi filter.- See Also:
-
-
Method Details
-
setConjunction
public void setConjunction(boolean conjunction) Sets the conjunction behavior flag- Parameters:
conjunction- The new conjunction flag state
-
setShortCircuit
public void setShortCircuit(boolean shortCircuit) Sets the conjunction short circuit flag- Parameters:
shortCircuit- The new short circuit flag state
-
resetState
public void resetState()Description copied from interface:TokenFilterResets the filter's state. Does nothing by default.- Specified by:
resetStatein interfaceTokenFilter
-
isTokenAllowed
Description copied from interface:TokenFilterChecks if the token should be printed.- Specified by:
isTokenAllowedin interfaceTokenFilter- Parameters:
token- The token to check- Returns:
trueif the given token should be printed
-