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;

/**
* 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.
*/
@@ -145,14 +138,6 @@ public class IntrospectionHelper {
&& java.lang.String.class.equals(args[0])) {

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")
&& java.lang.Void.TYPE.equals(returnType)
@@ -281,23 +266,13 @@ public class IntrospectionHelper {
public Object createElement(Object element, String elementName)
throws BuildException {
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 {
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) {
// impossible as getMethods should only return public methods
throw new BuildException(ie);


Loading…
Cancel
Save