Class LinkedRuleBuilder


  • public final class LinkedRuleBuilder
    extends java.lang.Object
    Builder invoked to bind one or more rules to a pattern.
    Since:
    3.0
    • Field Detail

      • classLoader

        private final java.lang.ClassLoader classLoader
      • keyPattern

        private final java.lang.String keyPattern
      • namespaceURI

        private java.lang.String namespaceURI
    • Constructor Detail

      • LinkedRuleBuilder

        LinkedRuleBuilder​(RulesBinder mainBinder,
                          FromBinderRuleSet fromBinderRuleSet,
                          java.lang.ClassLoader classLoader,
                          java.lang.String keyPattern)
    • Method Detail

      • callMethod

        public CallMethodBuilder callMethod​(java.lang.String methodName)
        Calls a method on an object on the stack (normally the top/parent object), passing arguments collected from subsequent callParam() rule or from the body of this element.
        Parameters:
        methodName - Method name of the parent object to call
        Returns:
        a new CallMethodBuilder instance.
      • callParamPath

        public PathCallParamBuilder callParamPath()
        Construct a "call parameter" rule that will save the body text of this element as the parameter value.
        Returns:
        a new PathCallParamBuilder instance.
      • objectParam

        public <T> ObjectParamBuilder<T> objectParam​(T paramObj)
        Saves a parameter for use by a surrounding callMethod(String).
        Type Parameters:
        T - The parameter type to pass along
        Parameters:
        paramObj - The parameter to pass along
        Returns:
        a new ObjectParamBuilder instance.
      • setNestedProperties

        public NestedPropertiesBuilder setNestedProperties()
        Sets properties on the object at the top of the stack, based on child elements with names matching properties on that object.
        Returns:
        a new NestedPropertiesBuilder instance.
      • setNext

        public SetNextBuilder setNext​(java.lang.String methodName)
        Calls a method on the (top-1) (parent) object, passing the top object (child) as an argument, commonly used to establish parent-child relationships.
        Parameters:
        methodName - Method name of the parent method to call
        Returns:
        a new SetNextBuilder instance.
      • setProperties

        public SetPropertiesBuilder setProperties()
        Sets properties on the object at the top of the stack, based on attributes with corresponding names.
        Returns:
        a new SetPropertiesBuilder instance.
      • setProperty

        public SetPropertyBuilder setProperty​(java.lang.String attributePropertyName)
        Sets an individual property on the object at the top of the stack, based on attributes with specified names.
        Parameters:
        attributePropertyName - Name of the attribute that will contain the name of the property to be set
        Returns:
        a new SetPropertyBuilder instance.
      • setRoot

        public SetRootBuilder setRoot​(java.lang.String methodName)
        Calls a method on the root object on the stack, passing the top object (child) as an argument.
        Parameters:
        methodName - Method name of the parent method to call
        Returns:
        a new SetRootBuilder instance.
      • setTop

        public SetTopBuilder setTop​(java.lang.String methodName)
        Calls a "set top" method on the top (child) object, passing the (top-1) (parent) object as an argument.
        Parameters:
        methodName - Method name of the "set parent" method to call
        Returns:
        a new SetTopBuilder instance.
      • addRuleCreatedBy

        public <R extends RuleByRuleProviderBuilder<R> addRuleCreatedBy​(RuleProvider<R> provider)
        Add a custom user rule in the specified pattern built by the given provider.
        Type Parameters:
        R - The rule type
        Parameters:
        provider - The rule provider
        Returns:
        a new ByRuleProviderBuilder instance.
      • withNamespaceURI

        public LinkedRuleBuilder withNamespaceURI​(java.lang.String namespaceURI)
        Sets the namespace URI for the current rule pattern.
        Parameters:
        namespaceURI - the namespace URI associated to the rule pattern.
        Returns:
        this LinkedRuleBuilder instance
      • addProvider

        private <R extends Rule,​RB extends AbstractBackToLinkedRuleBuilder<R>> RB addProvider​(RB provider)
        Add a provider in the data structure where storing the providers binding.
        Type Parameters:
        R - The rule will be created by the given provider
        Parameters:
        provider - The provider has to be stored in the data structure
        Returns:
        The provider itself has to be stored in the data structure