Browse Source

Remove the concept of a factory method for creating nested elements

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@268488 13f79535-47bb-0310-9956-ffa450edef68
master
Conor MacNeill 24 years ago
parent
commit
fc90859974
1 changed files with 6 additions and 31 deletions
  1. +6
    -31
      src/main/org/apache/tools/ant/IntrospectionHelper.java

+ 6
- 31
src/main/org/apache/tools/ant/IntrospectionHelper.java View File

@@ -95,13 +95,6 @@ public class IntrospectionHelper {
*/ */
private Method addText = null; private Method addText = null;


/**
* The method used to add nested elements which can't be added through
* nested creators. It allows a task to define a factory method for creating
* nested elements.
*/
private Method elementFactoryMethod = null;

/** /**
* The Class that's been introspected. * The Class that's been introspected.
*/ */
@@ -145,14 +138,6 @@ public class IntrospectionHelper {
&& java.lang.String.class.equals(args[0])) { && java.lang.String.class.equals(args[0])) {


addText = methods[i]; addText = methods[i];
} else if ("createElement".equals(name)
&& !returnType.isArray()
&& !returnType.isPrimitive()
&& args.length == 1
&& java.lang.String.class.equals(args[0])) {

elementFactoryMethod = methods[i];


} else if (name.startsWith("set") } else if (name.startsWith("set")
&& java.lang.Void.TYPE.equals(returnType) && java.lang.Void.TYPE.equals(returnType)
@@ -281,23 +266,13 @@ public class IntrospectionHelper {
public Object createElement(Object element, String elementName) public Object createElement(Object element, String elementName)
throws BuildException { throws BuildException {
NestedCreator nc = (NestedCreator) nestedCreators.get(elementName); NestedCreator nc = (NestedCreator) nestedCreators.get(elementName);
if (nc == null) {
String msg = "Class " + element.getClass().getName() +
" doesn't support the nested \"" + elementName + "\" element";
throw new BuildException(msg);
}
try { try {
if (nc == null) {
Object nestedElement = null;
if (elementFactoryMethod != null) {
nestedElement
= elementFactoryMethod.invoke(element, new Object[] {elementName});
}
if (nestedElement == null) {
String msg = "Class " + element.getClass().getName() +
" doesn't support the nested \"" + elementName + "\" element";
throw new BuildException(msg);
}
return nestedElement;
}
else {
return nc.create(element);
}
return nc.create(element);
} catch (IllegalAccessException ie) { } catch (IllegalAccessException ie) {
// impossible as getMethods should only return public methods // impossible as getMethods should only return public methods
throw new BuildException(ie); throw new BuildException(ie);


Loading…
Cancel
Save