Class 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 specified
      boolean 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 filter
      java.lang.String getFlagDescription​(java.lang.String parameter)
      Returns the description of a flag
      int getMinimumNumberParametersRequired()  
      abstract java.lang.String getName()
      The display name of the filter
      java.lang.String getParameterDescription​(java.lang.String parameter)
      Returns the parameter description or null if the parameter does not exist
      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
      java.util.Set<java.lang.String> getPossibleFlags()
      Returns the set of possible flags
      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
      java.util.Set<java.lang.String> getRequiredParameters()
      Returns a copy of all possible parameter types for this filter
      com.ensoftcorp.atlas.core.query.Q getSupportedInput​(com.ensoftcorp.atlas.core.query.Q input)
      Returns the supported edges and nodes
      int hashCode()  
      boolean isApplicableTo​(com.ensoftcorp.atlas.core.query.Q input)
      Returns true if the input contains supported edges or nodes
      boolean isFlagSet​(java.lang.String name, java.util.Map<java.lang.String,​java.lang.Object> parameters)
      Returns true if the given flag was set
      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
      void setMinimumNumberParametersRequired​(int numRequired)  
      java.lang.String toString()
      Returns the filter name
      • Methods inherited from class java.lang.Object

        getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • Filter

        public Filter()
    • 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 class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object