You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jaxme-dev@ws.apache.org by jo...@apache.org on 2004/01/01 18:48:47 UTC
cvs commit: ws-jaxme/src/js/org/apache/ws/jaxme/js/pattern ChainGenerator.java ProxyGenerator.java
jochen 2004/01/01 09:48:47
Modified: src/xs/org/apache/ws/jaxme/xs/parser/impl
AttributeSetterImpl.java
src/js/org/apache/ws/jaxme/js/pattern ChainGenerator.java
ProxyGenerator.java
Log:
Workaround for a bug in Clover: The parser is unable to handle references to primitive classes like "char.class". The workaround is to use the static variables like "Character.TYPE".
Revision Changes Path
1.2 +2 -2 ws-jaxme/src/xs/org/apache/ws/jaxme/xs/parser/impl/AttributeSetterImpl.java
Index: AttributeSetterImpl.java
===================================================================
RCS file: /home/cvs/ws-jaxme/src/xs/org/apache/ws/jaxme/xs/parser/impl/AttributeSetterImpl.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AttributeSetterImpl.java 23 Sep 2003 12:32:11 -0000 1.1
+++ AttributeSetterImpl.java 1 Jan 2004 17:48:47 -0000 1.2
@@ -246,7 +246,7 @@
private static class CharacterClass implements ParameterClass {
public Object matches(Class pClass) {
- return (char.class.equals(pClass) || Character.class.equals(pClass)) ? Boolean.TRUE : null;
+ return (Character.TYPE.equals(pClass) || Character.class.equals(pClass)) ? Boolean.TRUE : null;
}
public void invoke(AttributeSetterImpl pAttributeSetter, Object pBean, String pValue, Method pMethod, Object pMethodObject, String pQName) throws SAXException {
@@ -260,7 +260,7 @@
private static class BooleanClass implements ParameterClass {
public Object matches(Class pClass) {
- return (boolean.class.equals(pClass) || Boolean.class.equals(pClass)) ? Boolean.TRUE : null;
+ return (Boolean.TYPE.equals(pClass) || Boolean.class.equals(pClass)) ? Boolean.TRUE : null;
}
public void invoke(AttributeSetterImpl pAttributeSetter, Object pBean, String pValue, Method pMethod, Object pMethodObject, String pQName) throws SAXException {
1.2 +126 -120 ws-jaxme/src/js/org/apache/ws/jaxme/js/pattern/ChainGenerator.java
Index: ChainGenerator.java
===================================================================
RCS file: /home/cvs/ws-jaxme/src/js/org/apache/ws/jaxme/js/pattern/ChainGenerator.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ChainGenerator.java 23 Sep 2003 12:33:41 -0000 1.1
+++ ChainGenerator.java 1 Jan 2004 17:48:47 -0000 1.2
@@ -209,6 +209,127 @@
}
}
+ private class ProxyInterfaceGenerator extends ProxyGenerator {
+ public JavaMethod getInterfaceMethod(JavaSource pSource,
+ ProxyGenerator.InterfaceDescription pDescription,
+ java.lang.reflect.Method pMethod) {
+ JavaMethod jm = pSource.newJavaMethod(pMethod);
+ Parameter[] parameters = jm.getParams();
+ JavaQName controllerInterfaceQName = JavaQNameImpl.getInstance(getControllerInterface());
+ jm.clearParams();
+ jm.addParam(controllerInterfaceQName, "pController");
+ for (int i = 0; i < parameters.length; i++) {
+ jm.addParam(parameters[i]);
+ }
+ return jm;
+ }
+ public JavaSource generate(JavaSourceFactory pInterfaceFactory,
+ JavaQName pTargetClass,
+ ProxyGenerator.InterfaceDescription[] pDescription) {
+ JavaSource result = super.generate(pInterfaceFactory, pTargetClass,
+ pDescription);
+ result.clearImplements();
+ return result;
+ }
+ }
+
+ private class ProxyImplementationGenerator extends ProxyGenerator {
+ protected JavaField getBackingObjectField(JavaSource pJs, InterfaceDescription[] pInterfaces) {
+ return pJs.newJavaField("backingObject", getChainInterface(), JavaSource.PRIVATE);
+ }
+ protected JavaConstructor getConstructor(JavaSource pJs,
+ InterfaceDescription[] pInterfaces) {
+ JavaConstructor jcon = pJs.newJavaConstructor(JavaSource.PROTECTED);
+ jcon.addParam(getChainInterface(), "o");
+ jcon.addIf("o == null");
+ jcon.addThrowNew(NullPointerException.class,
+ JavaSource.getQuoted("The supplied object must not be null."));
+ jcon.addEndIf();
+ jcon.addLine("backingObject = o;");
+ return jcon;
+ }
+
+ public JavaMethod getInterfaceMethod(JavaSource pSource,
+ ProxyGenerator.InterfaceDescription pDescription,
+ java.lang.reflect.Method pMethod) {
+ JavaMethod jm = pSource.newJavaMethod(pMethod);
+ Parameter[] parameters = jm.getParams();
+ JavaQName controllerInterfaceQName = JavaQNameImpl.getInstance(getControllerInterface());
+ jm.clearParams();
+ jm.addParam(controllerInterfaceQName, "pController");
+ for (int i = 0; i < parameters.length; i++) {
+ jm.addParam(parameters[i]);
+ }
+ List callParameters = new ArrayList();
+ callParameters.add("pController");
+ for (int i = 0; i < parameters.length; i++) {
+ Parameter parameter = parameters[i];
+ callParameters.add(", ");
+ callParameters.add(parameter.getName());
+ }
+ jm.addLine((Void.TYPE.equals(pMethod.getReturnType()) ? "" : " return "),
+ "backingObject.",
+ pMethod.getName(), "(", callParameters, ");");
+ return jm;
+ }
+ public JavaSource generate(JavaSourceFactory pImplementationFactory,
+ JavaQName pTargetClass,
+ ProxyGenerator.InterfaceDescription[] pDescription) {
+ JavaSource result = super.generate(pImplementationFactory, pTargetClass, pDescription);
+ result.clearImplements();
+ result.addImplements(getChainInterface());
+ return result;
+ }
+ }
+
+ private class ControllerImplementationGenerator extends ProxyGenerator {
+ protected JavaField getBackingObjectField(JavaSource pJs, InterfaceDescription[] pInterfaces) {
+ return pJs.newJavaField("backingObject", getChainInterface(), JavaSource.PRIVATE);
+ }
+ protected JavaConstructor getConstructor(JavaSource pJs,
+ InterfaceDescription[] pInterfaces) {
+ JavaConstructor jcon = pJs.newJavaConstructor(JavaSource.PUBLIC);
+ jcon.addParam(getChainInterface(), "o");
+ jcon.addIf("o == null");
+ jcon.addThrowNew(NullPointerException.class,
+ JavaSource.getQuoted("The supplied object must not be null."));
+ jcon.addEndIf();
+ jcon.addLine("backingObject = o;");
+ return jcon;
+ }
+ public JavaMethod getInterfaceMethod(JavaSource pSource,
+ ProxyGenerator.InterfaceDescription pDescription,
+ java.lang.reflect.Method pMethod) {
+ JavaMethod jm = pSource.newJavaMethod(pMethod);
+ Parameter[] parameters = jm.getParams();
+ List callParameters = new ArrayList();
+ callParameters.add("this");
+ for (int i = 0; i < parameters.length; i++) {
+ Parameter parameter = parameters[i];
+ callParameters.add(", ");
+ callParameters.add(parameter.getName());
+ }
+ jm.addLine((Void.TYPE.equals(pMethod.getReturnType()) ? "" : " return "),
+ "backingObject.",
+ pMethod.getName(), "(", callParameters, ");");
+ return jm;
+ }
+ protected JavaMethod getGetHeadOfChainMethod(JavaSource pSource) {
+ JavaMethod jm = pSource.newJavaMethod("getHeadOfChain",
+ getChainInterface(),
+ JavaSource.PUBLIC);
+ jm.addLine("return backingObject;");
+ return jm;
+ }
+ public JavaSource generate(JavaSourceFactory pImplementationFactory,
+ JavaQName pTargetClass,
+ ProxyGenerator.InterfaceDescription[] pDescription) {
+ JavaSource result = super.generate(pImplementationFactory, pTargetClass, pDescription);
+ getGetHeadOfChainMethod(result);
+ return result;
+ }
+ }
+
public JavaSource[] generate(JavaSourceFactory pFactory) {
ProxyGenerator.InterfaceDescription controllerDescription =
new ProxyGenerator.InterfaceDescription();
@@ -219,129 +340,14 @@
ProxyGenerator.InterfaceDescription[] interfaces =
new ProxyGenerator.InterfaceDescription[]{controllerDescription};
- ProxyGenerator proxyInterfaceGenerator = new ProxyGenerator(){
- public JavaMethod getInterfaceMethod(JavaSource pSource,
- ProxyGenerator.InterfaceDescription pDescription,
- java.lang.reflect.Method pMethod) {
- JavaMethod jm = pSource.newJavaMethod(pMethod);
- Parameter[] parameters = jm.getParams();
- JavaQName controllerInterfaceQName = JavaQNameImpl.getInstance(getControllerInterface());
- jm.clearParams();
- jm.addParam(controllerInterfaceQName, "pController");
- for (int i = 0; i < parameters.length; i++) {
- jm.addParam(parameters[i]);
- }
- return jm;
- }
- public JavaSource generate(JavaSourceFactory pInterfaceFactory,
- JavaQName pTargetClass,
- ProxyGenerator.InterfaceDescription[] pDescription) {
- JavaSource result = super.generate(pInterfaceFactory, pTargetClass,
- pDescription);
- result.clearImplements();
- return result;
- }
- };
+ ProxyGenerator proxyInterfaceGenerator = new ProxyInterfaceGenerator();
JavaSource proxyInterface = proxyInterfaceGenerator.generate(pFactory, getChainInterface(), interfaces);
proxyInterface.setType(JavaSource.INTERFACE);
- ProxyGenerator proxyImplementationGenerator = new ProxyGenerator(){
- protected JavaField getBackingObjectField(JavaSource pJs, InterfaceDescription[] pInterfaces) {
- return pJs.newJavaField("backingObject", getChainInterface(), JavaSource.PRIVATE);
- }
- protected JavaConstructor getConstructor(JavaSource pJs,
- InterfaceDescription[] pInterfaces) {
- JavaConstructor jcon = pJs.newJavaConstructor(JavaSource.PROTECTED);
- jcon.addParam(getChainInterface(), "o");
- jcon.addIf("o == null");
- jcon.addThrowNew(NullPointerException.class,
- JavaSource.getQuoted("The supplied object must not be null."));
- jcon.addEndIf();
- jcon.addLine("backingObject = o;");
- return jcon;
- }
-
- public JavaMethod getInterfaceMethod(JavaSource pSource,
- ProxyGenerator.InterfaceDescription pDescription,
- java.lang.reflect.Method pMethod) {
- JavaMethod jm = pSource.newJavaMethod(pMethod);
- Parameter[] parameters = jm.getParams();
- JavaQName controllerInterfaceQName = JavaQNameImpl.getInstance(getControllerInterface());
- jm.clearParams();
- jm.addParam(controllerInterfaceQName, "pController");
- for (int i = 0; i < parameters.length; i++) {
- jm.addParam(parameters[i]);
- }
- List callParameters = new ArrayList();
- callParameters.add("pController");
- for (int i = 0; i < parameters.length; i++) {
- Parameter parameter = parameters[i];
- callParameters.add(", ");
- callParameters.add(parameter.getName());
- }
- jm.addLine((void.class.equals(pMethod.getReturnType()) ? "" : " return "),
- "backingObject.",
- pMethod.getName(), "(", callParameters, ");");
- return jm;
- }
- public JavaSource generate(JavaSourceFactory pImplementationFactory,
- JavaQName pTargetClass,
- ProxyGenerator.InterfaceDescription[] pDescription) {
- JavaSource result = super.generate(pImplementationFactory, pTargetClass, pDescription);
- result.clearImplements();
- result.addImplements(getChainInterface());
- return result;
- }
- };
- JavaSource proxyImplementation = proxyImplementationGenerator.generate(pFactory, getProxyClass(), interfaces);
-
- ProxyGenerator controllerImplementationGenerator = new ProxyGenerator(){
- protected JavaField getBackingObjectField(JavaSource pJs, InterfaceDescription[] pInterfaces) {
- return pJs.newJavaField("backingObject", getChainInterface(), JavaSource.PRIVATE);
- }
- protected JavaConstructor getConstructor(JavaSource pJs,
- InterfaceDescription[] pInterfaces) {
- JavaConstructor jcon = pJs.newJavaConstructor(JavaSource.PUBLIC);
- jcon.addParam(getChainInterface(), "o");
- jcon.addIf("o == null");
- jcon.addThrowNew(NullPointerException.class,
- JavaSource.getQuoted("The supplied object must not be null."));
- jcon.addEndIf();
- jcon.addLine("backingObject = o;");
- return jcon;
- }
- public JavaMethod getInterfaceMethod(JavaSource pSource,
- ProxyGenerator.InterfaceDescription pDescription,
- java.lang.reflect.Method pMethod) {
- JavaMethod jm = pSource.newJavaMethod(pMethod);
- Parameter[] parameters = jm.getParams();
- List callParameters = new ArrayList();
- callParameters.add("this");
- for (int i = 0; i < parameters.length; i++) {
- Parameter parameter = parameters[i];
- callParameters.add(", ");
- callParameters.add(parameter.getName());
- }
- jm.addLine((void.class.equals(pMethod.getReturnType()) ? "" : " return "),
- "backingObject.",
- pMethod.getName(), "(", callParameters, ");");
- return jm;
- }
- protected JavaMethod getGetHeadOfChainMethod(JavaSource pSource) {
- JavaMethod jm = pSource.newJavaMethod("getHeadOfChain",
- getChainInterface(),
- JavaSource.PUBLIC);
- jm.addLine("return backingObject;");
- return jm;
- }
- public JavaSource generate(JavaSourceFactory pImplementationFactory,
- JavaQName pTargetClass,
- ProxyGenerator.InterfaceDescription[] pDescription) {
- JavaSource result = super.generate(pImplementationFactory, pTargetClass, pDescription);
- getGetHeadOfChainMethod(result);
- return result;
- }
- };
+ ProxyGenerator proxyImpGenerator = new ProxyImplementationGenerator();
+ JavaSource proxyImplementation = proxyImpGenerator.generate(pFactory, getProxyClass(), interfaces);
+
+ ProxyGenerator controllerImplementationGenerator = new ControllerImplementationGenerator();
JavaSource controllerImplementation = controllerImplementationGenerator.generate(pFactory, getImplementationClass(), interfaces);
return new JavaSource[]{controllerImplementation, proxyInterface, proxyImplementation};
1.2 +2 -2 ws-jaxme/src/js/org/apache/ws/jaxme/js/pattern/ProxyGenerator.java
Index: ProxyGenerator.java
===================================================================
RCS file: /home/cvs/ws-jaxme/src/js/org/apache/ws/jaxme/js/pattern/ProxyGenerator.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ProxyGenerator.java 23 Sep 2003 12:33:41 -0000 1.1
+++ ProxyGenerator.java 1 Jan 2004 17:48:47 -0000 1.2
@@ -288,7 +288,7 @@
}
callParameters.add(parameter.getName());
}
- jm.addLine((void.class.equals(pMethod.getReturnType()) ? "" : " return "),
+ jm.addLine((Void.TYPE.equals(pMethod.getReturnType()) ? "" : " return "),
"((", pInterfaceDescription.getInterface(), ") backingObject).",
pMethod.getName(), "(", callParameters, ");");
return jm;
---------------------------------------------------------------------
To unsubscribe, e-mail: jaxme-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: jaxme-dev-help@ws.apache.org