FileDocCategorySizeDatePackage
SetNextNamingRule.javaAPI DocApache Tomcat 6.0.143737Fri Jul 20 04:20:36 BST 2007org.apache.catalina.startup

SetNextNamingRule

public class SetNextNamingRule extends org.apache.tomcat.util.digester.Rule

Rule implementation that calls a method on the (top-1) (parent) object, passing the top object (child) as an argument. It is commonly used to establish parent-child relationships.

This rule now supports more flexible method matching by default. It is possible that this may break (some) code written against release 1.1.1 or earlier.

Fields Summary
protected String
methodName
The method name to call on the parent object.
protected String
paramType
The Java class name of the parameter type expected by the method.
Constructors Summary
public SetNextNamingRule(String methodName, String paramType)
Construct a "set next" rule with the specified method name.

param
methodName Method name of the parent method to call
param
paramType Java class of the parent method's argument (if you wish to use a primitive type, specify the corresonding Java wrapper class instead, such as java.lang.Boolean for a boolean parameter)


        this.methodName = methodName;
        this.paramType = paramType;

    
Methods Summary
public voidend()
Process the end of this element.



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


               
         

        // Identify the objects to be used
        Object child = digester.peek(0);
        Object parent = digester.peek(1);

        NamingResources namingResources = null;
        if (parent instanceof Context) {
            namingResources = ((Context) parent).getNamingResources();
        } else {
            namingResources = (NamingResources) parent;
        }
        
        // Call the specified method
        IntrospectionUtils.callMethod1(namingResources, methodName,
                child, paramType, digester.getClassLoader());

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


        StringBuffer sb = new StringBuffer("SetNextRule[");
        sb.append("methodName=");
        sb.append(methodName);
        sb.append(", paramType=");
        sb.append(paramType);
        sb.append("]");
        return (sb.toString());