Class Operators.SimpleLogicalOperator

  • Enclosing class:
    Operators

    public static class Operators.SimpleLogicalOperator
    extends DFOperator
    Class for AND/OR operators.
    • Constructor Detail

      • SimpleLogicalOperator

        public SimpleLogicalOperator​(java.lang.String persistName,
                                     java.lang.String displayName)
    • Method Detail

      • validate

        public void validate​(DFDataTree dataTree,
                             java.util.List<DFTerm> operands,
                             java.util.Map<java.lang.String,​java.lang.Object> options,
                             TermErrors errors)
        Description copied from class: DFOperator
        Validate the operands in context of this operator. It's up to operator to decide if it accepts the given operands or not. This method is called from DFTerm.validate(com.im.df.api.ddl.DFDataTree).
        Overrides:
        validate in class DFOperator
        Parameters:
        dataTree - The datatree where this operator will be used
        operands - The list of operands
        options - Options of this query term (DFTermExpression.getOptions()
        errors - The errors object which contains the result of the validation
      • isFieldAcceptableAsOperand

        public boolean isFieldAcceptableAsOperand​(DFField field)
        Description copied from class: DFOperator
        This is just an utility method which must be implemented by subclasses. It tests if the given field is acceptable as operand for this DFOperator. It can return true even for fields which are recognized as invalid later. This is just rough test in the beginning of validation to filter inappropriate fields.

        For example some operator takes two operands of different types (text, integer,...), but both must be of the same type. In this case this method returns true for all text, integer etc. fields, but if you use combination of [text, integer] as operands, it will be invalid.

        Specified by:
        isFieldAcceptableAsOperand in class DFOperator
        Parameters:
        field - The field to be tested
        Returns:
        True if field seems to be acceptable, false otherwise.
      • getToStringPart

        public java.lang.String getToStringPart​(java.util.List<DFTerm> operands,
                                                int index)
        Description copied from class: DFOperator
        Get the part of the complete DFOperator.toString(java.util.List) method result. This method can be overriden by subclasses so each operator can provide specific form of String representation.

        For example for binary operator is this method called 3 times: for indexes 0, 1 and 2. The index=0 means it's string before the first operand, index=1 is string between operands and index=2 is after the second operand. For operator LESS_THAN it should return: index=0 => "", index=1 => " less than ", and for index=2 => "".

        This method allow subclass to reuse the generic code from DFOperator.toString(java.util.List) and change the own notation (e.g. "[molW < 15]" => "[< moW, 15]" etc.).

        Overrides:
        getToStringPart in class DFOperator
        Parameters:
        operands - The list of all operands
        index - The index of String [0..operands.size()]
        Returns:
        if there is only a single operand, then return no operator, otherwise operands are connected with logical operator name.
      • parseOperands

        public java.lang.Object[] parseOperands​(DFField field,
                                                java.lang.String operands)
                                         throws java.lang.IllegalArgumentException
        Specified by:
        parseOperands in class DFOperator
        Throws:
        java.lang.IllegalArgumentException