FileDocCategorySizeDatePackage
ObjectCreateRule.javaAPI DocApache Tomcat 6.0.147411Fri Jul 20 04:20:34 BST 2007org.apache.tomcat.util.digester

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

Fields Summary
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.
Constructors Summary
public ObjectCreateRule(Digester digester, String className)
Construct an object create rule with the specified class name.

param
digester The associated Digester
param
className Java class name of the object to be created
deprecated
The digester instance is now set in the {@link Digester#addRule} method. Use {@link #ObjectCreateRule(String className)} instead.


        this(className);

    
public ObjectCreateRule(Digester digester, Class clazz)
Construct an object create rule with the specified class.

param
digester The associated Digester
param
clazz Java class name of the object to be created
deprecated
The digester instance is now set in the {@link Digester#addRule} method. Use {@link #ObjectCreateRule(Class clazz)} instead.


        this(clazz);

    
public ObjectCreateRule(Digester digester, String className, String attributeName)
Construct an object create rule with the specified class name and an optional attribute name containing an override.

param
digester The associated Digester
param
className Java class name of the object to be created
param
attributeName Attribute name which, if present, contains an override of the class name to create
deprecated
The digester instance is now set in the {@link Digester#addRule} method. Use {@link #ObjectCreateRule(String className, String attributeName)} instead.


        this (className, attributeName);

    
public ObjectCreateRule(Digester digester, String attributeName, Class clazz)
Construct an object create rule with the specified class and an optional attribute name containing an override.

param
digester The associated Digester
param
attributeName Attribute name which, if present, contains an
param
clazz Java class name of the object to be created override of the class name to create
deprecated
The digester instance is now set in the {@link Digester#addRule} method. Use {@link #ObjectCreateRule(String attributeName, Class clazz)} instead.


        this(attributeName, clazz);

    
public ObjectCreateRule(String className)
Construct an object create rule with the specified class name.

param
className Java class name of the object to be created


        this(className, (String) null);

    
public ObjectCreateRule(Class clazz)
Construct an object create rule with the specified class.

param
clazz Java class name of the object to be created


        this(clazz.getName(), (String) null);

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

param
className Java class name of the object to be created
param
attributeName Attribute name which, if present, contains an override of the class name to create


        this.className = className;
        this.attributeName = attributeName;

    
public ObjectCreateRule(String attributeName, Class clazz)
Construct an object create rule with the specified class and an optional attribute name containing an override.

param
attributeName Attribute name which, if present, contains an
param
clazz Java class name of the object to be created override of the class name to create


        this(clazz.getName(), attributeName);

    
Methods Summary
public voidbegin(org.xml.sax.Attributes attributes)
Process the beginning of this element.

param
attributes The attribute list of this element



    // --------------------------------------------------------- Public Methods


                       
          

        // Identify the name of the class to instantiate
        String realClassName = className;
        if (attributeName != null) {
            String value = attributes.getValue(attributeName);
            if (value != null) {
                realClassName = value;
            }
        }
        if (digester.log.isDebugEnabled()) {
            digester.log.debug("[ObjectCreateRule]{" + digester.match +
                    "}New " + realClassName);
        }

        // Instantiate the new object and push it on the context stack
        Class clazz = digester.getClassLoader().loadClass(realClassName);
        Object instance = clazz.newInstance();
        digester.push(instance);

    
public voidend()
Process the end of this element.


        Object top = digester.pop();
        if (digester.log.isDebugEnabled()) {
            digester.log.debug("[ObjectCreateRule]{" + digester.match +
                    "} Pop " + top.getClass().getName());
        }

    
public java.lang.StringtoString()
Render a printable version of this Rule.


        StringBuffer sb = new StringBuffer("ObjectCreateRule[");
        sb.append("className=");
        sb.append(className);
        sb.append(", attributeName=");
        sb.append(attributeName);
        sb.append("]");
        return (sb.toString());