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