# Class ObjectCreateRule

java.lang.Object
org.apache.tomcat.util.digester.Rule
org.apache.tomcat.util.digester.ObjectCreateRule

Direct Known Subclasses:
  `ListenerCreateRule`

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 Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected String`
  `attributeName`
  The attribute containing an override class name if it is present.
  `protected String`
  `className`
  The Java class name of the object to be created.

  ### Fields inherited from class Rule

  `digester, namespaceURI, sm`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ObjectCreateRule(String className)`
  Construct an object create rule with the specified class name.
  `ObjectCreateRule(String className, String attributeName)`
  Construct an object create rule with the specified class name and an optional attribute name containing an override.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `begin(String namespace, String name, Attributes attributes)`
  Process the beginning of this element.
  `void`
  `end(String namespace, String name)`
  Process the end of this element.
  `protected String`
  `getRealClassName(Attributes attributes)`
  Return the actual class name of the class to be instantiated.
  `String`
  `toString()`
  Render a printable version of this Rule.

  ### Methods inherited from class Rule

  `body, finish, getDigester, getNamespaceURI, setDigester, setNamespaceURI`

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### attributeName

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

  - ### className

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

- ## 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(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

- ## Method Details

  - ### begin

    public void begin(String namespace, String name, Attributes attributes) throws Exception
    Process the beginning of this element.
    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 for this element
    Throws:
      `Exception` - if an error occurs while processing the event

  - ### getRealClassName

    protected String getRealClassName(Attributes attributes)
    Return the actual class name of the class to be instantiated.
    Parameters:
      `attributes` - The attribute list for this element
    Returns:
      the class name

  - ### end

    public void end(String namespace, String name) throws Exception
    Process the end of this element.
    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 an error occurs while processing the event

  - ### toString

    public String toString()
    Render a printable version of this Rule.
    Overrides:
      `toString` in class `Object`