Class ParameterNode

    • Constructor Detail

      • ParameterNode

        public ParameterNode​(ParameterInfo parameterInfo)
    • Method Detail

      • replaceNode

        public boolean replaceNode​(RootNode oldNode,
                                   RootNode newNode)
        Description copied from interface: RootNode
        Call it to modify Pattern structure. It is actually called mainly by PatternBuilder. TODO: May be we can move this method into some internal interface?
        Parameters:
        oldNode - old RootNode
        newNode - new RootNode
        Returns:
        a true if `oldNode` was found in this RootNode or it's children and replaced by `newNode` false if `oldNode` was not found
      • generateTargets

        public <T> void generateTargets​(DefaultGenerator generator,
                                        ResultHolder<T> result,
                                        ImmutableMap parameters)
        Description copied from interface: RootNode
        Generates zero, one or more target depending on kind of this RootNode, expected `result` and input `parameters`
        Parameters:
        generator - Generator which drives generation process
        result - holder for the generated objects
        parameters - a ImmutableMap holding parameters
      • matchTarget

        public ImmutableMap matchTarget​(Object target,
                                        ImmutableMap parameters)
        Parameters:
        target - - to be matched element
        parameters - will receive the matching parameter values
        Returns:
        true if `element` matches with pattern of this matcher
      • isRepeatable

        public boolean isRepeatable()
        Returns:
        true if this matcher can be applied more then once in the same container of targets Note: even if false, it may be applied again to another container and to match EQUAL value
      • isMandatory

        public boolean isMandatory​(ImmutableMap parameters)
        Parameters:
        parameters - matching parameters
        Returns:
        true if this ValueResolver MUST match with next target in the state defined by current `parameters`. false if match is optional
      • isTryNextMatch

        public boolean isTryNextMatch​(ImmutableMap parameters)
        Parameters:
        parameters - matching parameters
        Returns:
        true if this ValueResolver should be processed again to match next target in the state defined by current `parameters`.
      • matchTargets

        public TobeMatched matchTargets​(TobeMatched targets,
                                        Matchers next)
        Specified by:
        matchTargets in interface RootNode
        Parameters:
        targets - to be matched target nodes and input parameters
        next - Chain of matchers which has to be processed after this RootNode
        Returns:
        new parameters and container with remaining targets