Browse Source

remove stephan's work-arounds

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@276478 13f79535-47bb-0310-9956-ffa450edef68
master
Peter Reilly 21 years ago
parent
commit
614648dc6f
2 changed files with 65 additions and 82 deletions
  1. +45
    -46
      src/main/org/apache/tools/ant/IntrospectionHelper.java
  2. +20
    -36
      src/main/org/apache/tools/ant/util/XMLFragment.java

+ 45
- 46
src/main/org/apache/tools/ant/IntrospectionHelper.java View File

@@ -489,21 +489,20 @@ public final class IntrospectionHelper implements BuildListener {
= (AttributeSetter) attributeSetters.get( = (AttributeSetter) attributeSetters.get(
attributeName.toLowerCase(Locale.US)); attributeName.toLowerCase(Locale.US));
if (as == null) { if (as == null) {
// if (element instanceof DynamicConfiguratorNS) {
// DynamicConfiguratorNS dc = (DynamicConfiguratorNS) element;
// String uriPlusPrefix =
// ProjectHelper.extractUriFromComponentName(attributeName);
// String uri =
// ProjectHelper.extractUriFromComponentName(uriPlusPrefix);
// String localName =
// ProjectHelper.extractNameFromComponentName(attributeName);
// String qName = ("".equals(uri)
// ? localName : (uri + ":" + localName));
//
// dc.setDynamicAttribute(uri, localName, qName, value);
// return;
// } else
if (element instanceof DynamicConfigurator) {
if (element instanceof DynamicConfiguratorNS) {
DynamicConfiguratorNS dc = (DynamicConfiguratorNS) element;
String uriPlusPrefix =
ProjectHelper.extractUriFromComponentName(attributeName);
String uri =
ProjectHelper.extractUriFromComponentName(uriPlusPrefix);
String localName =
ProjectHelper.extractNameFromComponentName(attributeName);
String qName = ("".equals(uri)
? localName : (uri + ":" + localName));

dc.setDynamicAttribute(uri, localName, qName, value);
return;
} else if (element instanceof DynamicConfigurator) {
DynamicConfigurator dc = (DynamicConfigurator) element; DynamicConfigurator dc = (DynamicConfigurator) element;
dc.setDynamicAttribute(attributeName.toLowerCase(Locale.US), value); dc.setDynamicAttribute(attributeName.toLowerCase(Locale.US), value);
return; return;
@@ -612,35 +611,35 @@ public final class IntrospectionHelper implements BuildListener {
if (nc == null) { if (nc == null) {
nc = createAddTypeCreator(project, parent, elementName); nc = createAddTypeCreator(project, parent, elementName);
} }
// if (nc == null && parent instanceof DynamicConfiguratorNS) {
// DynamicConfiguratorNS dc = (DynamicConfiguratorNS) parent;
// String qName = (child == null ? name : child.getQName());
// final Object nestedElement =
// dc.createDynamicElement(
// (child == null ? "" : child.getNamespace()),
// name, qName);
// if (nestedElement != null) {
// nc = new NestedCreator() {
// public boolean isPolyMorphic() {
// return false;
// }
// public Class getElementClass() {
// return null;
// }
//
// public Object getRealObject() {
// return null;
// }
//
// public Object create(
// Project project, Object parent, Object ignore) {
// return nestedElement;
// }
// public void store(Object parent, Object child) {
// }
// };
// }
// }
if (nc == null && parent instanceof DynamicConfiguratorNS) {
DynamicConfiguratorNS dc = (DynamicConfiguratorNS) parent;
String qName = (child == null ? name : child.getQName());
final Object nestedElement =
dc.createDynamicElement(
(child == null ? "" : child.getNamespace()),
name, qName);
if (nestedElement != null) {
nc = new NestedCreator() {
public boolean isPolyMorphic() {
return false;
}
public Class getElementClass() {
return null;
}
public Object getRealObject() {
return null;
}
public Object create(
Project project, Object parent, Object ignore) {
return nestedElement;
}
public void store(Object parent, Object child) {
}
};
}
}
if (nc == null && parent instanceof DynamicConfigurator) { if (nc == null && parent instanceof DynamicConfigurator) {
DynamicConfigurator dc = (DynamicConfigurator) parent; DynamicConfigurator dc = (DynamicConfigurator) parent;
final Object nestedElement = final Object nestedElement =
@@ -751,7 +750,7 @@ public final class IntrospectionHelper implements BuildListener {
public boolean supportsNestedElement(String elementName) { public boolean supportsNestedElement(String elementName) {
return nestedCreators.containsKey(elementName.toLowerCase(Locale.US)) return nestedCreators.containsKey(elementName.toLowerCase(Locale.US))
|| DynamicConfigurator.class.isAssignableFrom(bean) || DynamicConfigurator.class.isAssignableFrom(bean)
// || DynamicConfiguratorNS.class.isAssignableFrom(bean)
|| DynamicConfiguratorNS.class.isAssignableFrom(bean)
|| addTypeMethods.size() != 0; || addTypeMethods.size() != 0;
} }


@@ -778,7 +777,7 @@ public final class IntrospectionHelper implements BuildListener {
nestedCreators.containsKey(name.toLowerCase(Locale.US)) nestedCreators.containsKey(name.toLowerCase(Locale.US))
&& (uri.equals(parentUri))) // || uri.equals(""))) && (uri.equals(parentUri))) // || uri.equals("")))
|| DynamicConfigurator.class.isAssignableFrom(bean) || DynamicConfigurator.class.isAssignableFrom(bean)
// || DynamicConfiguratorNS.class.isAssignableFrom(bean)
|| DynamicConfiguratorNS.class.isAssignableFrom(bean)
|| addTypeMethods.size() != 0; || addTypeMethods.size() != 0;
} }




+ 20
- 36
src/main/org/apache/tools/ant/util/XMLFragment.java View File

@@ -24,8 +24,7 @@ import org.w3c.dom.Node;
import org.w3c.dom.Text; import org.w3c.dom.Text;


import org.apache.tools.ant.BuildException; import org.apache.tools.ant.BuildException;
//import org.apache.tools.ant.DynamicConfiguratorNS;
import org.apache.tools.ant.DynamicConfigurator;
import org.apache.tools.ant.DynamicConfiguratorNS;
import org.apache.tools.ant.ProjectHelper; import org.apache.tools.ant.ProjectHelper;


/** /**
@@ -39,8 +38,7 @@ import org.apache.tools.ant.ProjectHelper;
* *
* @since Ant 1.7 * @since Ant 1.7
*/ */
//public class XMLFragment implements DynamicConfiguratorNS {
public class XMLFragment implements DynamicConfigurator {
public class XMLFragment implements DynamicConfiguratorNS {


private Document doc; private Document doc;
private DocumentFragment fragment; private DocumentFragment fragment;
@@ -68,8 +66,7 @@ public class XMLFragment implements DynamicConfigurator {
/** /**
* No attributes for the wrapping element. * No attributes for the wrapping element.
*/ */
// public void setDynamicAttribute(String uri, String name, String qName, String value)
public void setDynamicAttribute(String name, String value)
public void setDynamicAttribute(String uri, String name, String qName, String value)
throws BuildException { throws BuildException {
throw new BuildException("Attribute " + name + " is not supported."); throw new BuildException("Attribute " + name + " is not supported.");
} }
@@ -77,12 +74,8 @@ public class XMLFragment implements DynamicConfigurator {
/** /**
* Creates a nested element. * Creates a nested element.
*/ */
// public Object createDynamicElement(String uri, String name, String qName) {
// Element e = doc.createElementNS(uri, qName);
public Object createDynamicElement(String name) {
Element e = doc
.createElementNS(ProjectHelper.extractUriFromComponentName(name),
ProjectHelper.extractNameFromComponentName(name));
public Object createDynamicElement(String uri, String name, String qName) {
Element e = doc.createElementNS(uri, qName);
fragment.appendChild(e); fragment.appendChild(e);
return new Child(e); return new Child(e);
} }
@@ -94,8 +87,7 @@ public class XMLFragment implements DynamicConfigurator {
} }
} }


// public class Child implements DynamicConfiguratorNS {
public class Child implements DynamicConfigurator {
public class Child implements DynamicConfiguratorNS {
private Element e; private Element e;


Child(Element e) { Child(Element e) {
@@ -112,33 +104,25 @@ public class XMLFragment implements DynamicConfigurator {
/** /**
* Sets the attribute * Sets the attribute
*/ */
// public void setDynamicAttribute(
// String uri, String name, String qName, String value) {
// if (uri.equals("")) {
// e.setAttribute(name, value);
// } else {
// e.setAttributeNS(uri, qName, value);
// }
public void setDynamicAttribute(String name, String value) {
e.setAttribute(name, value);
public void setDynamicAttribute(
String uri, String name, String qName, String value) {
if (uri.equals("")) {
e.setAttribute(name, value);
} else {
e.setAttributeNS(uri, qName, value);
}
} }


/** /**
* Creates a nested element. * Creates a nested element.
*/ */
// public Object createDynamicElement(String uri, String name, String qName) {
// Element e2 = null;
// if (uri.equals("")) {
// e2 = doc.createElement(name);
// } else {
// e2 = doc.createElementNS(uri, qName);
// }
public Object createDynamicElement(String name) {
Element e2 = doc
.createElementNS(ProjectHelper
.extractUriFromComponentName(name),
ProjectHelper
.extractNameFromComponentName(name));
public Object createDynamicElement(String uri, String name, String qName) {
Element e2 = null;
if (uri.equals("")) {
e2 = doc.createElement(name);
} else {
e2 = doc.createElementNS(uri, qName);
}
e.appendChild(e2); e.appendChild(e2);
return new Child(e2); return new Child(e2);
} }


Loading…
Cancel
Save