Files
HRMS/hrmsEjb/org/apache/commons/digester/ObjectCreateRule.java
2025-07-28 13:56:49 +05:30

75 lines
2.1 KiB
Java

package org.apache.commons.digester;
import org.xml.sax.Attributes;
public class ObjectCreateRule extends Rule {
protected String attributeName;
protected String className;
public ObjectCreateRule(Digester digester, String className) {
this(className);
}
public ObjectCreateRule(Digester digester, Class clazz) {
this(clazz);
}
public ObjectCreateRule(Digester digester, String className, String attributeName) {
this(className, attributeName);
}
public ObjectCreateRule(Digester digester, String attributeName, Class clazz) {
this(attributeName, clazz);
}
public ObjectCreateRule(String className) {
this(className, (String)null);
}
public ObjectCreateRule(Class clazz) {
this(clazz.getName(), (String)null);
}
public ObjectCreateRule(String className, String attributeName) {
this.attributeName = null;
this.className = null;
this.className = className;
this.attributeName = attributeName;
}
public ObjectCreateRule(String attributeName, Class clazz) {
this(clazz.getName(), attributeName);
}
public void begin(Attributes attributes) throws Exception {
String realClassName = this.className;
if (this.attributeName != null) {
String value = attributes.getValue(this.attributeName);
if (value != null)
realClassName = value;
}
if (this.digester.log.isDebugEnabled())
this.digester.log.debug("[ObjectCreateRule]{" + this.digester.match + "}New " + realClassName);
Class clazz = this.digester.getClassLoader().loadClass(realClassName);
Object instance = clazz.newInstance();
this.digester.push(instance);
}
public void end() throws Exception {
Object top = this.digester.pop();
if (this.digester.log.isDebugEnabled())
this.digester.log.debug("[ObjectCreateRule]{" + this.digester.match + "} Pop " + top.getClass().getName());
}
public String toString() {
StringBuffer sb = new StringBuffer("ObjectCreateRule[");
sb.append("className=");
sb.append(this.className);
sb.append(", attributeName=");
sb.append(this.attributeName);
sb.append("]");
return sb.toString();
}
}