Class ObjectCreateRule

java.lang.Object
org.apache.commons.digester3.Rule
org.apache.commons.digester3.ObjectCreateRule

public class ObjectCreateRule extends Rule
Rule implementation that creates a new object and pushes it onto the object stack. When the element is complete, the object will be popped
  • Field Details

    • attributeName

      protected String attributeName
      The attribute containing an override class name if it is present.
    • clazz

      protected Class<?> clazz
      The Java class of the object to be created.
    • className

      protected String className
      The Java class name of the object to be created.
    • constructorArgumentTypes

      private Class<?>[] constructorArgumentTypes
      The constructor argument types.
      Since:
      3.2
    • defaultConstructorArguments

      private Object[] defaultConstructorArguments
      The explictly specified default constructor arguments which may be overridden by CallParamRules.
      Since:
      3.2
    • proxyManager

      private ObjectCreateRule.ProxyManager proxyManager
      Helper object for managing proxies.
      Since:
      3.2
  • Constructor Details

    • ObjectCreateRule

      public ObjectCreateRule(String className)
      Construct an object create rule with the specified class name.
      Parameters:
      className - Java class name of the object to be created
    • ObjectCreateRule

      public ObjectCreateRule(Class<?> clazz)
      Construct an object create rule with the specified class.
      Parameters:
      clazz - Java class name of the object to be created
    • ObjectCreateRule

      public ObjectCreateRule(String className, String attributeName)
      Construct an object create rule with the specified class name and an optional attribute name containing an override.
      Parameters:
      className - Java class name of the object to be created
      attributeName - Attribute name which, if present, contains an override of the class name to create
    • ObjectCreateRule

      public ObjectCreateRule(String attributeName, Class<?> clazz)
      Construct an object create rule with the specified class and an optional attribute name containing an override.
      Parameters:
      attributeName - Attribute name which, if present, contains an
      clazz - Java class name of the object to be created override of the class name to create
  • Method Details

    • setConstructorArgumentTypes

      public void setConstructorArgumentTypes(Class<?>... constructorArgumentTypes)
      Allows users to specify constructor argument types.
      Parameters:
      constructorArgumentTypes - the constructor argument types
      Since:
      3.2
    • setDefaultConstructorArguments

      public void setDefaultConstructorArguments(Object... constructorArguments)
      Allows users to specify default constructor arguments. If a default/no-arg constructor is not available for the target class, these arguments will be used to create the proxy object. For any argument not supplied by a CallParamRule, the corresponding item from this array will be used to construct the final object as well.
      Parameters:
      constructorArguments - the default constructor arguments.
      Since:
      3.2
    • begin

      public void begin(String namespace, String name, Attributes attributes) throws Exception
      This method is called when the beginning of a matching XML element is encountered.
      Overrides:
      begin in class Rule
      Parameters:
      namespace - the namespace URI of the matching element, or an empty string if the parser is not namespace aware or the element has no namespace
      name - the local name if the parser is namespace aware, or just the element name otherwise
      attributes - The attribute list of this element
      Throws:
      Exception - if any error occurs
    • end

      public void end(String namespace, String name) throws Exception
      This method is called when the end of a matching XML element is encountered.
      Overrides:
      end in class Rule
      Parameters:
      namespace - the namespace URI of the matching element, or an empty string if the parser is not namespace aware or the element has no namespace
      name - the local name if the parser is namespace aware, or just the element name otherwise
      Throws:
      Exception - if any error occurs
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • convertTo

      private static void convertTo(Class<?>[] types, Object[] array)