Class Filter
- java.lang.Object
-
- com.ensoftcorp.open.commons.filters.Filter
-
- Direct Known Subclasses:
EdgeFilter
,NameFilter
,NodeFilter
public abstract class Filter extends java.lang.Object
Filters are generalized implementation of the classic Gang of Four Pipe/Filter design pattern. Filters are chained together and return only a subset of the their input.- Author:
- Ben Holland
-
-
Constructor Summary
Constructors Constructor Description Filter()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
checkParameters(java.util.Map<java.lang.String,java.lang.Object> parameters)
Type checks expected parameters and rejects undeclared passed parameters Also checks that all required parameters have been specifiedboolean
equals(java.lang.Object obj)
com.ensoftcorp.atlas.core.query.Q
filter(com.ensoftcorp.atlas.core.query.Q input, java.util.Map<java.lang.String,java.lang.Object> parameters)
Returns the filtered input.abstract java.lang.String
getDescription()
A short description of the filterjava.lang.String
getFlagDescription(java.lang.String parameter)
Returns the description of a flagint
getMinimumNumberParametersRequired()
abstract java.lang.String
getName()
The display name of the filterjava.lang.String
getParameterDescription(java.lang.String parameter)
Returns the parameter description or null if the parameter does not existjava.lang.Object
getParameterValue(java.lang.String name, java.util.Map<java.lang.String,java.lang.Object> parameters)
Returns the specified parameter value or null if the parameter is unspecifiedjava.util.Set<java.lang.String>
getPossibleFlags()
Returns the set of possible flagsjava.util.Map<java.lang.String,java.lang.Class<? extends java.lang.Object>>
getPossibleParameters()
Returns a copy of all possible parameter types for this filterjava.util.Set<java.lang.String>
getRequiredParameters()
Returns a copy of all possible parameter types for this filtercom.ensoftcorp.atlas.core.query.Q
getSupportedInput(com.ensoftcorp.atlas.core.query.Q input)
Returns the supported edges and nodesint
hashCode()
boolean
isApplicableTo(com.ensoftcorp.atlas.core.query.Q input)
Returns true if the input contains supported edges or nodesboolean
isFlagSet(java.lang.String name, java.util.Map<java.lang.String,java.lang.Object> parameters)
Returns true if the given flag was setboolean
isParameterSet(java.lang.String name, java.util.Map<java.lang.String,java.lang.Object> parameters)
Returns true if the given parameter has been specifiedvoid
setMinimumNumberParametersRequired(int numRequired)
java.lang.String
toString()
Returns the filter name
-
-
-
Method Detail
-
setMinimumNumberParametersRequired
public void setMinimumNumberParametersRequired(int numRequired)
-
getMinimumNumberParametersRequired
public int getMinimumNumberParametersRequired()
-
getPossibleParameters
public java.util.Map<java.lang.String,java.lang.Class<? extends java.lang.Object>> getPossibleParameters()
Returns a copy of all possible parameter types for this filter- Returns:
-
getPossibleFlags
public java.util.Set<java.lang.String> getPossibleFlags()
Returns the set of possible flags- Returns:
-
getParameterDescription
public java.lang.String getParameterDescription(java.lang.String parameter)
Returns the parameter description or null if the parameter does not exist- Parameters:
parameter
-- Returns:
-
getFlagDescription
public java.lang.String getFlagDescription(java.lang.String parameter)
Returns the description of a flag- Parameters:
parameter
-- Returns:
-
getRequiredParameters
public java.util.Set<java.lang.String> getRequiredParameters()
Returns a copy of all possible parameter types for this filter- Returns:
-
isParameterSet
public boolean isParameterSet(java.lang.String name, java.util.Map<java.lang.String,java.lang.Object> parameters)
Returns true if the given parameter has been specified- Parameters:
name
-parameters
-- Returns:
-
isFlagSet
public boolean isFlagSet(java.lang.String name, java.util.Map<java.lang.String,java.lang.Object> parameters)
Returns true if the given flag was set- Parameters:
name
-parameters
-- Returns:
-
getParameterValue
public java.lang.Object getParameterValue(java.lang.String name, java.util.Map<java.lang.String,java.lang.Object> parameters)
Returns the specified parameter value or null if the parameter is unspecified- Parameters:
name
-parameters
-- Returns:
-
checkParameters
public void checkParameters(java.util.Map<java.lang.String,java.lang.Object> parameters) throws InvalidFilterParameterException
Type checks expected parameters and rejects undeclared passed parameters Also checks that all required parameters have been specified- Throws:
InvalidFilterParameterException
-
getName
public abstract java.lang.String getName()
The display name of the filter- Returns:
-
getDescription
public abstract java.lang.String getDescription()
A short description of the filter- Returns:
-
isApplicableTo
public boolean isApplicableTo(com.ensoftcorp.atlas.core.query.Q input)
Returns true if the input contains supported edges or nodes- Parameters:
input
-- Returns:
-
getSupportedInput
public com.ensoftcorp.atlas.core.query.Q getSupportedInput(com.ensoftcorp.atlas.core.query.Q input)
Returns the supported edges and nodes- Parameters:
input
-- Returns:
-
filter
public final com.ensoftcorp.atlas.core.query.Q filter(com.ensoftcorp.atlas.core.query.Q input, java.util.Map<java.lang.String,java.lang.Object> parameters) throws InvalidFilterParameterException
Returns the filtered input. The result is always a subset of the input.- Parameters:
input
-- Returns:
- Throws:
InvalidFilterParameterException
-
toString
public java.lang.String toString()
Returns the filter name- Overrides:
toString
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
-