Class Operators.StructureOperator

  • Enclosing class:
    Operators

    public static class Operators.StructureOperator
    extends DFOperator
    Class for all Structure based operators.
    • Constructor Detail

      • StructureOperator

        public StructureOperator​(java.lang.String persistName,
                                 java.lang.String displayName)
      • StructureOperator

        public StructureOperator​(java.lang.String persistName,
                                 java.lang.String displayName,
                                 java.lang.String displayNameInExpression)
    • 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.
      • toString

        public java.lang.String toString​(java.util.List<DFTerm> operands)
        Overrides:
        toString in class DFOperator
      • 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