Author: tchemit Date: 2009-03-09 00:39:02 +0000 (Mon, 09 Mar 2009) New Revision: 1260 Modified: jaxx/trunk/jaxx-compiler-api/changelog.txt jaxx/trunk/jaxx-compiler-api/src/main/java/jaxx/compiler/DefaultCompiledObjectDecorator.java jaxx/trunk/jaxx-compiler-api/src/main/java/jaxx/compiler/JAXXCompiler.java Log: - must get the goal property from the event id to make possible inheritance - improve override properties create method : when same type do not re-instanciate it Modified: jaxx/trunk/jaxx-compiler-api/changelog.txt =================================================================== --- jaxx/trunk/jaxx-compiler-api/changelog.txt 2009-03-09 00:35:43 UTC (rev 1259) +++ jaxx/trunk/jaxx-compiler-api/changelog.txt 2009-03-09 00:39:02 UTC (rev 1260) @@ -1,4 +1,6 @@ 1.3 ??? 200902?? + * 20090309 [chemit] - must get the goal property from the event id to make possible inheritance + - improve override properties create method : when same type do not re-instanciate it * 20090229 [chemit] - fix bug in ClassDescriptorLoader when searching for an arrayof primitive type - add a profile mode * 20090228 [chemit] - fix bug in MethodDescriptor when no returnType defined (constructor method) in getReturnType method invocation Modified: jaxx/trunk/jaxx-compiler-api/src/main/java/jaxx/compiler/DefaultCompiledObjectDecorator.java =================================================================== --- jaxx/trunk/jaxx-compiler-api/src/main/java/jaxx/compiler/DefaultCompiledObjectDecorator.java 2009-03-09 00:35:43 UTC (rev 1259) +++ jaxx/trunk/jaxx-compiler-api/src/main/java/jaxx/compiler/DefaultCompiledObjectDecorator.java 2009-03-09 00:39:02 UTC (rev 1260) @@ -41,27 +41,34 @@ return object.getInitializationCode(compiler); } StringBuffer result = new StringBuffer(); - result.append(object.getId()); - result.append(" = "); - if (object.isJavaBean() && object.getJavaBeanInitCode() != null) { - result.append(object.getJavaBeanInitCode()).append(";"); + if (object.isOverride() && object.getOverrideType()==object.getObjectClass()) { + //TC-20090309 on utilise le super code quand l'objet est de meme type + result.append("super.").append(object.getCreationMethodName()).append("();"); } else { - String constructorParams = object.getConstructorParams(); - if (constructorParams != null) { - //TC - 20081017 compiledObject can have generics - result.append(" new ").append(JAXXCompiler.getCanonicalName(object)).append("(").append(constructorParams).append(");"); - //result.append("(").append(getCanonicalName(object.getObjectClass())).append(") new ").append(getCanonicalName(object.getObjectClass())).append("(").append(constructorParams).append(");"); + result.append(object.getId()); + result.append(" = "); + if (object.isJavaBean() && object.getJavaBeanInitCode() != null) { + result.append(object.getJavaBeanInitCode()).append(";"); } else { - //TC - 20081017 compiledObject can have generics - result.append("new ").append(JAXXCompiler.getCanonicalName(object)).append("();"); + String constructorParams = object.getConstructorParams(); + if (constructorParams != null) { + //TC - 20081017 compiledObject can have generics + result.append(" new ").append(JAXXCompiler.getCanonicalName(object)).append("(").append(constructorParams).append(");"); + //result.append("(").append(getCanonicalName(object.getObjectClass())).append(") new ").append(getCanonicalName(object.getObjectClass())).append("(").append(constructorParams).append(");"); + } else { + //TC - 20081017 compiledObject can have generics + result.append("new ").append(JAXXCompiler.getCanonicalName(object)).append("();"); + } } + result.append(JAXXCompiler.getLineSeparator()); + result.append("$objectMap.put(").append(TypeManager.getJavaCode(object.getId())).append(", ").append(object.getId()).append(");"); } result.append(JAXXCompiler.getLineSeparator()); String initCode = object.getInitializationCode(compiler); if (initCode != null && initCode.length() > 0) { result.append(initCode); } - result.append("$objectMap.put(").append(TypeManager.getJavaCode(object.getId())).append(", ").append(object.getId()).append(");"); + return result.toString(); } Modified: jaxx/trunk/jaxx-compiler-api/src/main/java/jaxx/compiler/JAXXCompiler.java =================================================================== --- jaxx/trunk/jaxx-compiler-api/src/main/java/jaxx/compiler/JAXXCompiler.java 2009-03-09 00:35:43 UTC (rev 1259) +++ jaxx/trunk/jaxx-compiler-api/src/main/java/jaxx/compiler/JAXXCompiler.java 2009-03-09 00:39:02 UTC (rev 1260) @@ -628,7 +628,12 @@ if (getOptions().isOptimize()) { result = "$ev" + eventHandlerMethodNames.size(); } else { - result = "do" + org.apache.commons.lang.StringUtils.capitalize(handler.getListenerMethod().getName()) + "__on__" + handler.getObjectCode(); + //TC-20090309 must get the goal property from the event id + // to make possible inheritance + String id = handler.getEventId().substring(0,handler.getEventId().indexOf(".")); + + result = "do" + org.apache.commons.lang.StringUtils.capitalize(handler.getListenerMethod().getName()) + "__on__" + id; + //result = "do" + org.apache.commons.lang.StringUtils.capitalize(handler.getListenerMethod().getName()) + "__on__" + handler.getObjectCode(); } eventHandlerMethodNames.put(handler, result); }