You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2007/08/12 07:27:34 UTC
svn commit: r565003 [7/17] - in /activemq/trunk:
activemq-fileserver/src/main/java/org/apache/activemq/util/
activemq-fileserver/src/test/java/org/apache/activemq/util/
activemq-jaas/src/main/java/org/apache/activemq/jaas/
activemq-jaas/src/test/java/o...
Modified: activemq/trunk/activemq-openwire-generator/src/main/java/org/apache/activemq/openwire/tool/JavaMarshallingGenerator.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-openwire-generator/src/main/java/org/apache/activemq/openwire/tool/JavaMarshallingGenerator.java?view=diff&rev=565003&r1=565002&r2=565003
==============================================================================
--- activemq/trunk/activemq-openwire-generator/src/main/java/org/apache/activemq/openwire/tool/JavaMarshallingGenerator.java (original)
+++ activemq/trunk/activemq-openwire-generator/src/main/java/org/apache/activemq/openwire/tool/JavaMarshallingGenerator.java Sat Aug 11 22:27:21 2007
@@ -32,701 +32,700 @@
import org.codehaus.jam.JProperty;
/**
- *
* @version $Revision: 384826 $
*/
public class JavaMarshallingGenerator extends MultiSourceGenerator {
- protected List concreteClasses = new ArrayList();
- protected File factoryFile;
- protected String factoryFileName = "MarshallerFactory";
- protected String indent = " ";
- protected String targetDir="src/main/java";
-
- public Object run() {
- if (destDir == null) {
- destDir = new File(targetDir+"/org/apache/activemq/openwire/v" + getOpenwireVersion());
- }
- Object answer = super.run();
- processFactory();
- return answer;
- }
-
- protected void generateFile(PrintWriter out) throws Exception {
-
- generateLicence(out);
-out.println("");
-out.println("package org.apache.activemq.openwire.v" + getOpenwireVersion() + ";");
-out.println("");
-out.println("import java.io.DataInput;");
-out.println("import java.io.DataOutput;");
-out.println("import java.io.IOException;");
-out.println("");
-out.println("import org.apache.activemq.openwire.*;");
-out.println("import org.apache.activemq.command.*;");
-out.println("");
-out.println("");
- for (int i = 0; i < getJclass().getImportedPackages().length; i++) {
- JPackage pkg = getJclass().getImportedPackages()[i];
- for (int j = 0; j < pkg.getClasses().length; j++) {
- JClass clazz = pkg.getClasses()[j];
-out.println("import " + clazz.getQualifiedName() + ";");
- }
- }
-
-out.println("");
-out.println("/**");
-out.println(" * Marshalling code for Open Wire Format for "+getClassName()+"");
-out.println(" *");
-out.println(" *");
-out.println(" * NOTE!: This file is auto generated - do not modify!");
-out.println(" * if you need to make a change, please see the modify the groovy scripts in the");
-out.println(" * under src/gram/script and then use maven openwire:generate to regenerate ");
-out.println(" * this file.");
-out.println(" *");
-out.println(" * @version $Revision$");
-out.println(" */");
-out.println("public " + getAbstractClassText() + "class " + getClassName() + " extends " + getBaseClass() + " {");
-out.println("");
-
- if (!isAbstractClass()) {
-
-out.println(" /**");
-out.println(" * Return the type of Data Structure we marshal");
-out.println(" * @return short representation of the type data structure");
-out.println(" */");
-out.println(" public byte getDataStructureType() {");
-out.println(" return "+getJclass().getSimpleName()+".DATA_STRUCTURE_TYPE;");
-out.println(" }");
-out.println(" ");
-out.println(" /**");
-out.println(" * @return a new object instance");
-out.println(" */");
-out.println(" public DataStructure createObject() {");
-out.println(" return new "+getJclass().getSimpleName()+"();");
-out.println(" }");
-out.println("");
- }
-
-out.println(" /**");
-out.println(" * Un-marshal an object instance from the data input stream");
-out.println(" *");
-out.println(" * @param o the object to un-marshal");
-out.println(" * @param dataIn the data input stream to build the object from");
-out.println(" * @throws IOException");
-out.println(" */");
-out.println(" public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException {");
-out.println(" super.tightUnmarshal(wireFormat, o, dataIn, bs);");
-
- if (!getProperties().isEmpty()) {
-out.println("");
-out.println(" " + getJclass().getSimpleName() + " info = (" + getJclass().getSimpleName() + ")o;");
- }
-
- if (isMarshallerAware()) {
-out.println("");
-out.println(" info.beforeUnmarshall(wireFormat);");
-out.println(" ");
- }
-
- generateTightUnmarshalBody(out);
-
- if (isMarshallerAware()) {
-out.println("");
-out.println(" info.afterUnmarshall(wireFormat);");
- }
-
-out.println("");
-out.println(" }");
-out.println("");
-out.println("");
-out.println(" /**");
-out.println(" * Write the booleans that this object uses to a BooleanStream");
-out.println(" */");
-out.println(" public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException {");
-
- if (!getProperties().isEmpty()) {
-out.println("");
-out.println(" " + getJclass().getSimpleName() + " info = (" + getJclass().getSimpleName() + ")o;");
- }
-
- if (isMarshallerAware()) {
-out.println("");
-out.println(" info.beforeMarshall(wireFormat);");
- }
-
-out.println("");
-out.println(" int rc = super.tightMarshal1(wireFormat, o, bs);");
- int baseSize = generateTightMarshal1Body(out);
-
-out.println("");
-out.println(" return rc + " + baseSize + ";");
-out.println(" }");
-out.println("");
-out.println(" /**");
-out.println(" * Write a object instance to data output stream");
-out.println(" *");
-out.println(" * @param o the instance to be marshaled");
-out.println(" * @param dataOut the output stream");
-out.println(" * @throws IOException thrown if an error occurs");
-out.println(" */");
-out.println(" public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException {");
-out.println(" super.tightMarshal2(wireFormat, o, dataOut, bs);");
- if (!getProperties().isEmpty()) {
-out.println("");
-out.println(" " + getJclass().getSimpleName() + " info = (" + getJclass().getSimpleName() + ")o;");
- }
-
- generateTightMarshal2Body(out);
-
- if (isMarshallerAware()) {
-out.println("");
-out.println(" info.afterMarshall(wireFormat);");
- }
-
-out.println("");
-out.println(" }");
-out.println("");
-out.println(" /**");
-out.println(" * Un-marshal an object instance from the data input stream");
-out.println(" *");
-out.println(" * @param o the object to un-marshal");
-out.println(" * @param dataIn the data input stream to build the object from");
-out.println(" * @throws IOException");
-out.println(" */");
-out.println(" public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException {");
-out.println(" super.looseUnmarshal(wireFormat, o, dataIn);");
-
- if (!getProperties().isEmpty()) {
-out.println("");
-out.println(" " + getJclass().getSimpleName() + " info = (" + getJclass().getSimpleName() + ")o;");
- }
-
- if (isMarshallerAware()) {
-out.println("");
-out.println(" info.beforeUnmarshall(wireFormat);");
-out.println(" ");
- }
-
- generateLooseUnmarshalBody(out);
-
- if (isMarshallerAware()) {
-out.println("");
-out.println(" info.afterUnmarshall(wireFormat);");
- }
-
-out.println("");
-out.println(" }");
-out.println("");
-out.println("");
-out.println(" /**");
-out.println(" * Write the booleans that this object uses to a BooleanStream");
-out.println(" */");
-out.println(" public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException {");
-
- if (!getProperties().isEmpty()) {
-out.println("");
-out.println(" " + getJclass().getSimpleName() + " info = (" + getJclass().getSimpleName() + ")o;");
- }
-
- if (isMarshallerAware()) {
-out.println("");
-out.println(" info.beforeMarshall(wireFormat);");
- }
-
-out.println("");
-out.println(" super.looseMarshal(wireFormat, o, dataOut);");
-
- generateLooseMarshalBody(out);
-
-out.println("");
-out.println(" }");
-out.println("}");
- }
-
- private void generateLicence(PrintWriter out) {
-out.println("/**");
-out.println(" *");
-out.println(" * Licensed to the Apache Software Foundation (ASF) under one or more");
-out.println(" * contributor license agreements. See the NOTICE file distributed with");
-out.println(" * this work for additional information regarding copyright ownership.");
-out.println(" * The ASF licenses this file to You under the Apache License, Version 2.0");
-out.println(" * (the \"License\"); you may not use this file except in compliance with");
-out.println(" * the License. You may obtain a copy of the License at");
-out.println(" *");
-out.println(" * http://www.apache.org/licenses/LICENSE-2.0");
-out.println(" *");
-out.println(" * Unless required by applicable law or agreed to in writing, software");
-out.println(" * distributed under the License is distributed on an \"AS IS\" BASIS,");
-out.println(" * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.");
-out.println(" * See the License for the specific language governing permissions and");
-out.println(" * limitations under the License.");
-out.println(" */");
- }
-
- protected void processFactory() {
- if (factoryFile == null) {
- factoryFile = new File(destDir, factoryFileName + filePostFix);
- }
- PrintWriter out = null;
- try {
- out = new PrintWriter(new FileWriter(factoryFile));
- generateFactory(out);
- } catch (Exception e) {
- throw new RuntimeException(e);
- } finally {
- if (out != null) {
- out.close();
- }
- }
- }
-
- protected void generateFactory(PrintWriter out) {
- generateLicence(out);
-out.println("");
-out.println("package org.apache.activemq.openwire.v"+getOpenwireVersion()+";");
-out.println("");
-out.println("import org.apache.activemq.openwire.DataStreamMarshaller;");
-out.println("import org.apache.activemq.openwire.OpenWireFormat;");
-out.println("");
-out.println("/**");
-out.println(" * MarshallerFactory for Open Wire Format.");
-out.println(" *");
-out.println(" *");
-out.println(" * NOTE!: This file is auto generated - do not modify!");
-out.println(" * if you need to make a change, please see the modify the groovy scripts in the");
-out.println(" * under src/gram/script and then use maven openwire:generate to regenerate ");
-out.println(" * this file.");
-out.println(" *");
-out.println(" * @version $Revision$");
-out.println(" */");
-out.println("public class MarshallerFactory {");
-out.println("");
-out.println(" /**");
-out.println(" * Creates a Map of command type -> Marshallers");
-out.println(" */");
-out.println(" static final private DataStreamMarshaller marshaller[] = new DataStreamMarshaller[256];");
-out.println(" static {");
-out.println("");
-
- List list = new ArrayList(getConcreteClasses());
- Collections.sort(list, new Comparator(){
- public int compare(Object o1, Object o2) {
- JClass c1 = (JClass) o1;
- JClass c2 = (JClass) o2;
- return c1.getSimpleName().compareTo(c2.getSimpleName());
- }});
-
- for (Iterator iter = list.iterator(); iter.hasNext();) {
- JClass jclass = (JClass) iter.next();
-out.println(" add(new " + jclass.getSimpleName() + "Marshaller());");
- }
-
-out.println("");
-out.println(" }");
-out.println("");
-out.println(" static private void add(DataStreamMarshaller dsm) {");
-out.println(" marshaller[dsm.getDataStructureType()] = dsm;");
-out.println(" }");
-out.println(" ");
-out.println(" static public DataStreamMarshaller[] createMarshallerMap(OpenWireFormat wireFormat) {");
-out.println(" return marshaller;");
-out.println(" }");
-out.println("}");
- }
-
- protected void processClass(JClass jclass) {
- super.processClass(jclass);
-
- if (!jclass.isAbstract()) {
- concreteClasses.add(jclass);
- }
- }
-
- protected String getClassName(JClass jclass) {
- return super.getClassName(jclass) + "Marshaller";
- }
-
- protected String getBaseClassName(JClass jclass) {
- String answer = "BaseDataStreamMarshaller";
- JClass superclass = jclass.getSuperclass();
- if (superclass != null) {
- String superName = superclass.getSimpleName();
- if (!superName.equals("Object") && !superName.equals("JNDIBaseStorable") && !superName.equals("DataStructureSupport")) {
- answer = superName + "Marshaller";
- }
- }
- return answer;
- }
-
- protected void initialiseManuallyMaintainedClasses() {
- }
-
- protected void generateTightUnmarshalBody(PrintWriter out) {
- List properties = getProperties();
- for (Iterator iter = properties.iterator(); iter.hasNext();) {
- JProperty property = (JProperty) iter.next();
- JAnnotation annotation = property.getAnnotation("openwire:property");
- JAnnotationValue size = annotation.getValue("size");
- JClass propertyType = property.getType();
- String propertyTypeName = propertyType.getSimpleName();
-
- if (propertyType.isArrayType() && !propertyTypeName.equals("byte[]")) {
- generateTightUnmarshalBodyForArrayProperty(out, property, size);
- } else {
- generateTightUnmarshalBodyForProperty(out, property, size);
- }
- }
- }
-
- protected void generateTightUnmarshalBodyForProperty(PrintWriter out, JProperty property, JAnnotationValue size) {
- String setter = property.getSetter().getSimpleName();
- String type = property.getType().getSimpleName();
-
- if (type.equals("boolean")) {
- out.println(" info." + setter + "(bs.readBoolean());");
- } else if (type.equals("byte")) {
- out.println(" info." + setter + "(dataIn.readByte());");
- } else if (type.equals("char")) {
- out.println(" info." + setter + "(dataIn.readChar());");
- } else if (type.equals("short")) {
- out.println(" info." + setter + "(dataIn.readShort());");
- } else if (type.equals("int")) {
- out.println(" info." + setter + "(dataIn.readInt());");
- } else if (type.equals("long")) {
- out.println(" info." + setter + "(tightUnmarshalLong(wireFormat, dataIn, bs));");
- } else if (type.equals("String")) {
- out.println(" info." + setter + "(tightUnmarshalString(dataIn, bs));");
- } else if (type.equals("byte[]")) {
- if (size != null) {
- out.println(" info." + setter + "(tightUnmarshalConstByteArray(dataIn, bs, " + size.asInt() + "));");
- } else {
- out.println(" info." + setter + "(tightUnmarshalByteArray(dataIn, bs));");
- }
- } else if (type.equals("ByteSequence")) {
- out.println(" info." + setter + "(tightUnmarshalByteSequence(dataIn, bs));");
- } else if (isThrowable(property.getType())) {
- out.println(" info." + setter + "((" + property.getType().getQualifiedName() + ") tightUnmarsalThrowable(wireFormat, dataIn, bs));");
- } else if (isCachedProperty(property)) {
- out.println(" info." + setter + "((" + property.getType().getQualifiedName() + ") tightUnmarsalCachedObject(wireFormat, dataIn, bs));");
- } else {
- out.println(" info." + setter + "((" + property.getType().getQualifiedName() + ") tightUnmarsalNestedObject(wireFormat, dataIn, bs));");
- }
- }
-
- protected void generateTightUnmarshalBodyForArrayProperty(PrintWriter out, JProperty property, JAnnotationValue size) {
- JClass propertyType = property.getType();
- String arrayType = propertyType.getArrayComponentType().getQualifiedName();
- String setter = property.getSetter().getSimpleName();
- out.println();
- if (size != null) {
- out.println(" {");
- out.println(" " + arrayType + " value[] = new " + arrayType + "[" + size.asInt() + "];");
- out.println(" " + "for( int i=0; i < " + size.asInt() + "; i++ ) {");
- out.println(" value[i] = (" + arrayType + ") tightUnmarsalNestedObject(wireFormat,dataIn, bs);");
- out.println(" }");
- out.println(" info." + setter + "(value);");
- out.println(" }");
- } else {
- out.println(" if (bs.readBoolean()) {");
- out.println(" short size = dataIn.readShort();");
- out.println(" " + arrayType + " value[] = new " + arrayType + "[size];");
- out.println(" for( int i=0; i < size; i++ ) {");
- out.println(" value[i] = (" + arrayType + ") tightUnmarsalNestedObject(wireFormat,dataIn, bs);");
- out.println(" }");
- out.println(" info." + setter + "(value);");
- out.println(" }");
- out.println(" else {");
- out.println(" info." + setter + "(null);");
- out.println(" }");
- }
- }
-
- protected int generateTightMarshal1Body(PrintWriter out) {
- List properties = getProperties();
- int baseSize = 0;
- for (Iterator iter = properties.iterator(); iter.hasNext();) {
- JProperty property = (JProperty) iter.next();
- JAnnotation annotation = property.getAnnotation("openwire:property");
- JAnnotationValue size = annotation.getValue("size");
- JClass propertyType = property.getType();
- String type = propertyType.getSimpleName();
- String getter = "info." + property.getGetter().getSimpleName() + "()";
-
- if (type.equals("boolean")) {
- out.println(" bs.writeBoolean(" + getter + ");");
- } else if (type.equals("byte")) {
- baseSize += 1;
- } else if (type.equals("char")) {
- baseSize += 2;
- } else if (type.equals("short")) {
- baseSize += 2;
- } else if (type.equals("int")) {
- baseSize += 4;
- } else if (type.equals("long")) {
- out.println(" rc+=tightMarshalLong1(wireFormat, " + getter + ", bs);");
- } else if (type.equals("String")) {
- out.println(" rc += tightMarshalString1(" + getter + ", bs);");
- } else if (type.equals("byte[]")) {
- if (size == null) {
- out.println(" rc += tightMarshalByteArray1(" + getter + ", bs);");
- } else {
- out.println(" rc += tightMarshalConstByteArray1(" + getter + ", bs, " + size.asInt() + ");");
- }
- } else if (type.equals("ByteSequence")) {
- out.println(" rc += tightMarshalByteSequence1(" + getter + ", bs);");
- } else if (propertyType.isArrayType()) {
- if (size != null) {
- out.println(" rc += tightMarshalObjectArrayConstSize1(wireFormat, " + getter + ", bs, " + size.asInt() + ");");
- } else {
- out.println(" rc += tightMarshalObjectArray1(wireFormat, " + getter + ", bs);");
- }
- } else if (isThrowable(propertyType)) {
- out.println(" rc += tightMarshalThrowable1(wireFormat, " + getter + ", bs);");
- } else {
- if (isCachedProperty(property)) {
- out.println(" rc += tightMarshalCachedObject1(wireFormat, (DataStructure)" + getter + ", bs);");
- } else {
- out.println(" rc += tightMarshalNestedObject1(wireFormat, (DataStructure)" + getter + ", bs);");
- }
- }
- }
- return baseSize;
- }
-
- protected void generateTightMarshal2Body(PrintWriter out) {
- List properties = getProperties();
- for (Iterator iter = properties.iterator(); iter.hasNext();) {
- JProperty property = (JProperty) iter.next();
- JAnnotation annotation = property.getAnnotation("openwire:property");
- JAnnotationValue size = annotation.getValue("size");
- JClass propertyType = property.getType();
- String type = propertyType.getSimpleName();
- String getter = "info." + property.getGetter().getSimpleName() + "()";
-
- if (type.equals("boolean")) {
- out.println(" bs.readBoolean();");
- } else if (type.equals("byte")) {
- out.println(" dataOut.writeByte(" + getter + ");");
- } else if (type.equals("char")) {
- out.println(" dataOut.writeChar(" + getter + ");");
- } else if (type.equals("short")) {
- out.println(" dataOut.writeShort(" + getter + ");");
- } else if (type.equals("int")) {
- out.println(" dataOut.writeInt(" + getter + ");");
- } else if (type.equals("long")) {
- out.println(" tightMarshalLong2(wireFormat, " + getter + ", dataOut, bs);");
- } else if (type.equals("String")) {
- out.println(" tightMarshalString2(" + getter + ", dataOut, bs);");
- } else if (type.equals("byte[]")) {
- String mandatory = getMandatoryFlag(annotation);
- if (size != null) {
- out.println(" tightMarshalConstByteArray2(" + getter + ", dataOut, bs, " + size.asInt() + ");");
- } else {
- out.println(" tightMarshalByteArray2(" + getter + ", dataOut, bs);");
- }
- } else if (type.equals("ByteSequence")) {
- out.println(" tightMarshalByteSequence2(" + getter + ", dataOut, bs);");
- } else if (propertyType.isArrayType()) {
- if (size != null) {
- out.println(" tightMarshalObjectArrayConstSize2(wireFormat, " + getter + ", dataOut, bs, " + size.asInt() + ");");
- } else {
- out.println(" tightMarshalObjectArray2(wireFormat, " + getter + ", dataOut, bs);");
- }
- } else if (isThrowable(propertyType)) {
- out.println(" tightMarshalThrowable2(wireFormat, " + getter + ", dataOut, bs);");
- } else {
- if (isCachedProperty(property)) {
- out.println(" tightMarshalCachedObject2(wireFormat, (DataStructure)" + getter + ", dataOut, bs);");
- } else {
- out.println(" tightMarshalNestedObject2(wireFormat, (DataStructure)" + getter + ", dataOut, bs);");
- }
- }
- }
- }
-
- protected void generateLooseMarshalBody(PrintWriter out) {
- List properties = getProperties();
- for (Iterator iter = properties.iterator(); iter.hasNext();) {
- JProperty property = (JProperty) iter.next();
- JAnnotation annotation = property.getAnnotation("openwire:property");
- JAnnotationValue size = annotation.getValue("size");
- JClass propertyType = property.getType();
- String type = propertyType.getSimpleName();
- String getter = "info." + property.getGetter().getSimpleName() + "()";
-
- if (type.equals("boolean")) {
- out.println(" dataOut.writeBoolean(" + getter + ");");
- } else if (type.equals("byte")) {
- out.println(" dataOut.writeByte(" + getter + ");");
- } else if (type.equals("char")) {
- out.println(" dataOut.writeChar(" + getter + ");");
- } else if (type.equals("short")) {
- out.println(" dataOut.writeShort(" + getter + ");");
- } else if (type.equals("int")) {
- out.println(" dataOut.writeInt(" + getter + ");");
- } else if (type.equals("long")) {
- out.println(" looseMarshalLong(wireFormat, " + getter + ", dataOut);");
- } else if (type.equals("String")) {
- out.println(" looseMarshalString(" + getter + ", dataOut);");
- } else if (type.equals("byte[]")) {
- if (size != null) {
- out.println(" looseMarshalConstByteArray(wireFormat, " + getter + ", dataOut, " + size.asInt() + ");");
- } else {
- out.println(" looseMarshalByteArray(wireFormat, " + getter + ", dataOut);");
- }
- } else if (type.equals("ByteSequence")) {
- out.println(" looseMarshalByteSequence(wireFormat, " + getter + ", dataOut);");
- } else if (propertyType.isArrayType()) {
- if (size != null) {
- out.println(" looseMarshalObjectArrayConstSize(wireFormat, " + getter + ", dataOut, " + size.asInt() + ");");
- } else {
- out.println(" looseMarshalObjectArray(wireFormat, " + getter + ", dataOut);");
- }
- } else if (isThrowable(propertyType)) {
- out.println(" looseMarshalThrowable(wireFormat, " + getter + ", dataOut);");
- } else {
- if (isCachedProperty(property)) {
- out.println(" looseMarshalCachedObject(wireFormat, (DataStructure)" + getter + ", dataOut);");
- } else {
- out.println(" looseMarshalNestedObject(wireFormat, (DataStructure)" + getter + ", dataOut);");
- }
- }
- }
- }
-
- protected void generateLooseUnmarshalBody(PrintWriter out) {
- List properties = getProperties();
- for (Iterator iter = properties.iterator(); iter.hasNext();) {
- JProperty property = (JProperty) iter.next();
- JAnnotation annotation = property.getAnnotation("openwire:property");
- JAnnotationValue size = annotation.getValue("size");
- JClass propertyType = property.getType();
- String propertyTypeName = propertyType.getSimpleName();
-
- if (propertyType.isArrayType() && !propertyTypeName.equals("byte[]")) {
- generateLooseUnmarshalBodyForArrayProperty(out, property, size);
- } else {
- generateLooseUnmarshalBodyForProperty(out, property, size);
- }
- }
- }
-
- protected void generateLooseUnmarshalBodyForProperty(PrintWriter out, JProperty property, JAnnotationValue size) {
- String setter = property.getSetter().getSimpleName();
- String type = property.getType().getSimpleName();
-
- if (type.equals("boolean")) {
- out.println(" info." + setter + "(dataIn.readBoolean());");
- } else if (type.equals("byte")) {
- out.println(" info." + setter + "(dataIn.readByte());");
- } else if (type.equals("char")) {
- out.println(" info." + setter + "(dataIn.readChar());");
- } else if (type.equals("short")) {
- out.println(" info." + setter + "(dataIn.readShort());");
- } else if (type.equals("int")) {
- out.println(" info." + setter + "(dataIn.readInt());");
- } else if (type.equals("long")) {
- out.println(" info." + setter + "(looseUnmarshalLong(wireFormat, dataIn));");
- } else if (type.equals("String")) {
- out.println(" info." + setter + "(looseUnmarshalString(dataIn));");
- } else if (type.equals("byte[]")) {
- if (size != null) {
- out.println(" info." + setter + "(looseUnmarshalConstByteArray(dataIn, " + size.asInt() + "));");
- } else {
- out.println(" info." + setter + "(looseUnmarshalByteArray(dataIn));");
- }
- } else if (type.equals("ByteSequence")) {
- out.println(" info." + setter + "(looseUnmarshalByteSequence(dataIn));");
- } else if (isThrowable(property.getType())) {
- out.println(" info." + setter + "((" + property.getType().getQualifiedName() + ") looseUnmarsalThrowable(wireFormat, dataIn));");
- } else if (isCachedProperty(property)) {
- out.println(" info." + setter + "((" + property.getType().getQualifiedName() + ") looseUnmarsalCachedObject(wireFormat, dataIn));");
- } else {
- out.println(" info." + setter + "((" + property.getType().getQualifiedName() + ") looseUnmarsalNestedObject(wireFormat, dataIn));");
- }
- }
-
- protected void generateLooseUnmarshalBodyForArrayProperty(PrintWriter out, JProperty property, JAnnotationValue size) {
- JClass propertyType = property.getType();
- String arrayType = propertyType.getArrayComponentType().getQualifiedName();
- String setter = property.getSetter().getSimpleName();
- out.println();
- if (size != null) {
- out.println(" {");
- out.println(" " + arrayType + " value[] = new " + arrayType + "[" + size.asInt() + "];");
- out.println(" " + "for( int i=0; i < " + size.asInt() + "; i++ ) {");
- out.println(" value[i] = (" + arrayType + ") looseUnmarsalNestedObject(wireFormat,dataIn);");
- out.println(" }");
- out.println(" info." + setter + "(value);");
- out.println(" }");
- } else {
- out.println(" if (dataIn.readBoolean()) {");
- out.println(" short size = dataIn.readShort();");
- out.println(" " + arrayType + " value[] = new " + arrayType + "[size];");
- out.println(" for( int i=0; i < size; i++ ) {");
- out.println(" value[i] = (" + arrayType + ") looseUnmarsalNestedObject(wireFormat,dataIn);");
- out.println(" }");
- out.println(" info." + setter + "(value);");
- out.println(" }");
- out.println(" else {");
- out.println(" info." + setter + "(null);");
- out.println(" }");
- }
- }
-
- /**
- * Returns whether or not the given annotation has a mandatory flag on it or
- * not
- */
- protected String getMandatoryFlag(JAnnotation annotation) {
- JAnnotationValue value = annotation.getValue("mandatory");
- if (value != null) {
- String text = value.asString();
- if (text != null && text.equalsIgnoreCase("true")) {
- return "true";
- }
- }
- return "false";
- }
-
- public List getConcreteClasses() {
- return concreteClasses;
- }
-
- public void setConcreteClasses(List concreteClasses) {
- this.concreteClasses = concreteClasses;
- }
-
- public File getFactoryFile() {
- return factoryFile;
- }
-
- public void setFactoryFile(File factoryFile) {
- this.factoryFile = factoryFile;
- }
-
- public String getFactoryFileName() {
- return factoryFileName;
- }
-
- public void setFactoryFileName(String factoryFileName) {
- this.factoryFileName = factoryFileName;
- }
-
- public String getIndent() {
- return indent;
- }
-
- public void setIndent(String indent) {
- this.indent = indent;
- }
-
- public String getTargetDir() {
- return targetDir;
- }
-
- public void setTargetDir(String sourceDir) {
- this.targetDir = sourceDir;
- }
+ protected List<JClass> concreteClasses = new ArrayList<JClass>();
+ protected File factoryFile;
+ protected String factoryFileName = "MarshallerFactory";
+ protected String indent = " ";
+ protected String targetDir = "src/main/java";
+
+ public Object run() {
+ if (destDir == null) {
+ destDir = new File(targetDir + "/org/apache/activemq/openwire/v" + getOpenwireVersion());
+ }
+ Object answer = super.run();
+ processFactory();
+ return answer;
+ }
+
+ protected void generateFile(PrintWriter out) throws Exception {
+
+ generateLicence(out);
+ out.println("");
+ out.println("package org.apache.activemq.openwire.v" + getOpenwireVersion() + ";");
+ out.println("");
+ out.println("import java.io.DataInput;");
+ out.println("import java.io.DataOutput;");
+ out.println("import java.io.IOException;");
+ out.println("");
+ out.println("import org.apache.activemq.openwire.*;");
+ out.println("import org.apache.activemq.command.*;");
+ out.println("");
+ out.println("");
+ for (int i = 0; i < getJclass().getImportedPackages().length; i++) {
+ JPackage pkg = getJclass().getImportedPackages()[i];
+ for (int j = 0; j < pkg.getClasses().length; j++) {
+ JClass clazz = pkg.getClasses()[j];
+ out.println("import " + clazz.getQualifiedName() + ";");
+ }
+ }
+
+ out.println("");
+ out.println("/**");
+ out.println(" * Marshalling code for Open Wire Format for " + getClassName() + "");
+ out.println(" *");
+ out.println(" *");
+ out.println(" * NOTE!: This file is auto generated - do not modify!");
+ out.println(" * if you need to make a change, please see the modify the groovy scripts in the");
+ out.println(" * under src/gram/script and then use maven openwire:generate to regenerate ");
+ out.println(" * this file.");
+ out.println(" *");
+ out.println(" * @version $Revision$");
+ out.println(" */");
+ out.println("public " + getAbstractClassText() + "class " + getClassName() + " extends " + getBaseClass() + " {");
+ out.println("");
+
+ if (!isAbstractClass()) {
+
+ out.println(" /**");
+ out.println(" * Return the type of Data Structure we marshal");
+ out.println(" * @return short representation of the type data structure");
+ out.println(" */");
+ out.println(" public byte getDataStructureType() {");
+ out.println(" return " + getJclass().getSimpleName() + ".DATA_STRUCTURE_TYPE;");
+ out.println(" }");
+ out.println(" ");
+ out.println(" /**");
+ out.println(" * @return a new object instance");
+ out.println(" */");
+ out.println(" public DataStructure createObject() {");
+ out.println(" return new " + getJclass().getSimpleName() + "();");
+ out.println(" }");
+ out.println("");
+ }
+
+ out.println(" /**");
+ out.println(" * Un-marshal an object instance from the data input stream");
+ out.println(" *");
+ out.println(" * @param o the object to un-marshal");
+ out.println(" * @param dataIn the data input stream to build the object from");
+ out.println(" * @throws IOException");
+ out.println(" */");
+ out.println(" public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException {");
+ out.println(" super.tightUnmarshal(wireFormat, o, dataIn, bs);");
+
+ if (!getProperties().isEmpty()) {
+ out.println("");
+ out.println(" " + getJclass().getSimpleName() + " info = (" + getJclass().getSimpleName() + ")o;");
+ }
+
+ if (isMarshallerAware()) {
+ out.println("");
+ out.println(" info.beforeUnmarshall(wireFormat);");
+ out.println(" ");
+ }
+
+ generateTightUnmarshalBody(out);
+
+ if (isMarshallerAware()) {
+ out.println("");
+ out.println(" info.afterUnmarshall(wireFormat);");
+ }
+
+ out.println("");
+ out.println(" }");
+ out.println("");
+ out.println("");
+ out.println(" /**");
+ out.println(" * Write the booleans that this object uses to a BooleanStream");
+ out.println(" */");
+ out.println(" public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException {");
+
+ if (!getProperties().isEmpty()) {
+ out.println("");
+ out.println(" " + getJclass().getSimpleName() + " info = (" + getJclass().getSimpleName() + ")o;");
+ }
+
+ if (isMarshallerAware()) {
+ out.println("");
+ out.println(" info.beforeMarshall(wireFormat);");
+ }
+
+ out.println("");
+ out.println(" int rc = super.tightMarshal1(wireFormat, o, bs);");
+ int baseSize = generateTightMarshal1Body(out);
+
+ out.println("");
+ out.println(" return rc + " + baseSize + ";");
+ out.println(" }");
+ out.println("");
+ out.println(" /**");
+ out.println(" * Write a object instance to data output stream");
+ out.println(" *");
+ out.println(" * @param o the instance to be marshaled");
+ out.println(" * @param dataOut the output stream");
+ out.println(" * @throws IOException thrown if an error occurs");
+ out.println(" */");
+ out.println(" public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException {");
+ out.println(" super.tightMarshal2(wireFormat, o, dataOut, bs);");
+ if (!getProperties().isEmpty()) {
+ out.println("");
+ out.println(" " + getJclass().getSimpleName() + " info = (" + getJclass().getSimpleName() + ")o;");
+ }
+
+ generateTightMarshal2Body(out);
+
+ if (isMarshallerAware()) {
+ out.println("");
+ out.println(" info.afterMarshall(wireFormat);");
+ }
+
+ out.println("");
+ out.println(" }");
+ out.println("");
+ out.println(" /**");
+ out.println(" * Un-marshal an object instance from the data input stream");
+ out.println(" *");
+ out.println(" * @param o the object to un-marshal");
+ out.println(" * @param dataIn the data input stream to build the object from");
+ out.println(" * @throws IOException");
+ out.println(" */");
+ out.println(" public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException {");
+ out.println(" super.looseUnmarshal(wireFormat, o, dataIn);");
+
+ if (!getProperties().isEmpty()) {
+ out.println("");
+ out.println(" " + getJclass().getSimpleName() + " info = (" + getJclass().getSimpleName() + ")o;");
+ }
+
+ if (isMarshallerAware()) {
+ out.println("");
+ out.println(" info.beforeUnmarshall(wireFormat);");
+ out.println(" ");
+ }
+
+ generateLooseUnmarshalBody(out);
+
+ if (isMarshallerAware()) {
+ out.println("");
+ out.println(" info.afterUnmarshall(wireFormat);");
+ }
+
+ out.println("");
+ out.println(" }");
+ out.println("");
+ out.println("");
+ out.println(" /**");
+ out.println(" * Write the booleans that this object uses to a BooleanStream");
+ out.println(" */");
+ out.println(" public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException {");
+
+ if (!getProperties().isEmpty()) {
+ out.println("");
+ out.println(" " + getJclass().getSimpleName() + " info = (" + getJclass().getSimpleName() + ")o;");
+ }
+
+ if (isMarshallerAware()) {
+ out.println("");
+ out.println(" info.beforeMarshall(wireFormat);");
+ }
+
+ out.println("");
+ out.println(" super.looseMarshal(wireFormat, o, dataOut);");
+
+ generateLooseMarshalBody(out);
+
+ out.println("");
+ out.println(" }");
+ out.println("}");
+ }
+
+ private void generateLicence(PrintWriter out) {
+ out.println("/**");
+ out.println(" *");
+ out.println(" * Licensed to the Apache Software Foundation (ASF) under one or more");
+ out.println(" * contributor license agreements. See the NOTICE file distributed with");
+ out.println(" * this work for additional information regarding copyright ownership.");
+ out.println(" * The ASF licenses this file to You under the Apache License, Version 2.0");
+ out.println(" * (the \"License\"); you may not use this file except in compliance with");
+ out.println(" * the License. You may obtain a copy of the License at");
+ out.println(" *");
+ out.println(" * http://www.apache.org/licenses/LICENSE-2.0");
+ out.println(" *");
+ out.println(" * Unless required by applicable law or agreed to in writing, software");
+ out.println(" * distributed under the License is distributed on an \"AS IS\" BASIS,");
+ out.println(" * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.");
+ out.println(" * See the License for the specific language governing permissions and");
+ out.println(" * limitations under the License.");
+ out.println(" */");
+ }
+
+ protected void processFactory() {
+ if (factoryFile == null) {
+ factoryFile = new File(destDir, factoryFileName + filePostFix);
+ }
+ PrintWriter out = null;
+ try {
+ out = new PrintWriter(new FileWriter(factoryFile));
+ generateFactory(out);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ } finally {
+ if (out != null) {
+ out.close();
+ }
+ }
+ }
+
+ protected void generateFactory(PrintWriter out) {
+ generateLicence(out);
+ out.println("");
+ out.println("package org.apache.activemq.openwire.v" + getOpenwireVersion() + ";");
+ out.println("");
+ out.println("import org.apache.activemq.openwire.DataStreamMarshaller;");
+ out.println("import org.apache.activemq.openwire.OpenWireFormat;");
+ out.println("");
+ out.println("/**");
+ out.println(" * MarshallerFactory for Open Wire Format.");
+ out.println(" *");
+ out.println(" *");
+ out.println(" * NOTE!: This file is auto generated - do not modify!");
+ out.println(" * if you need to make a change, please see the modify the groovy scripts in the");
+ out.println(" * under src/gram/script and then use maven openwire:generate to regenerate ");
+ out.println(" * this file.");
+ out.println(" *");
+ out.println(" * @version $Revision$");
+ out.println(" */");
+ out.println("public class MarshallerFactory {");
+ out.println("");
+ out.println(" /**");
+ out.println(" * Creates a Map of command type -> Marshallers");
+ out.println(" */");
+ out.println(" static final private DataStreamMarshaller marshaller[] = new DataStreamMarshaller[256];");
+ out.println(" static {");
+ out.println("");
+
+ List<JClass> list = new ArrayList<JClass>(getConcreteClasses());
+ Collections.sort(list, new Comparator() {
+ public int compare(Object o1, Object o2) {
+ JClass c1 = (JClass)o1;
+ JClass c2 = (JClass)o2;
+ return c1.getSimpleName().compareTo(c2.getSimpleName());
+ }
+ });
+
+ for (Iterator<JClass> iter = list.iterator(); iter.hasNext();) {
+ JClass jclass = iter.next();
+ out.println(" add(new " + jclass.getSimpleName() + "Marshaller());");
+ }
+
+ out.println("");
+ out.println(" }");
+ out.println("");
+ out.println(" static private void add(DataStreamMarshaller dsm) {");
+ out.println(" marshaller[dsm.getDataStructureType()] = dsm;");
+ out.println(" }");
+ out.println(" ");
+ out.println(" static public DataStreamMarshaller[] createMarshallerMap(OpenWireFormat wireFormat) {");
+ out.println(" return marshaller;");
+ out.println(" }");
+ out.println("}");
+ }
+
+ protected void processClass(JClass jclass) {
+ super.processClass(jclass);
+
+ if (!jclass.isAbstract()) {
+ concreteClasses.add(jclass);
+ }
+ }
+
+ protected String getClassName(JClass jclass) {
+ return super.getClassName(jclass) + "Marshaller";
+ }
+
+ protected String getBaseClassName(JClass jclass) {
+ String answer = "BaseDataStreamMarshaller";
+ JClass superclass = jclass.getSuperclass();
+ if (superclass != null) {
+ String superName = superclass.getSimpleName();
+ if (!superName.equals("Object") && !superName.equals("JNDIBaseStorable") && !superName.equals("DataStructureSupport")) {
+ answer = superName + "Marshaller";
+ }
+ }
+ return answer;
+ }
+
+ protected void initialiseManuallyMaintainedClasses() {
+ }
+
+ protected void generateTightUnmarshalBody(PrintWriter out) {
+ List properties = getProperties();
+ for (Iterator iter = properties.iterator(); iter.hasNext();) {
+ JProperty property = (JProperty)iter.next();
+ JAnnotation annotation = property.getAnnotation("openwire:property");
+ JAnnotationValue size = annotation.getValue("size");
+ JClass propertyType = property.getType();
+ String propertyTypeName = propertyType.getSimpleName();
+
+ if (propertyType.isArrayType() && !propertyTypeName.equals("byte[]")) {
+ generateTightUnmarshalBodyForArrayProperty(out, property, size);
+ } else {
+ generateTightUnmarshalBodyForProperty(out, property, size);
+ }
+ }
+ }
+
+ protected void generateTightUnmarshalBodyForProperty(PrintWriter out, JProperty property, JAnnotationValue size) {
+ String setter = property.getSetter().getSimpleName();
+ String type = property.getType().getSimpleName();
+
+ if (type.equals("boolean")) {
+ out.println(" info." + setter + "(bs.readBoolean());");
+ } else if (type.equals("byte")) {
+ out.println(" info." + setter + "(dataIn.readByte());");
+ } else if (type.equals("char")) {
+ out.println(" info." + setter + "(dataIn.readChar());");
+ } else if (type.equals("short")) {
+ out.println(" info." + setter + "(dataIn.readShort());");
+ } else if (type.equals("int")) {
+ out.println(" info." + setter + "(dataIn.readInt());");
+ } else if (type.equals("long")) {
+ out.println(" info." + setter + "(tightUnmarshalLong(wireFormat, dataIn, bs));");
+ } else if (type.equals("String")) {
+ out.println(" info." + setter + "(tightUnmarshalString(dataIn, bs));");
+ } else if (type.equals("byte[]")) {
+ if (size != null) {
+ out.println(" info." + setter + "(tightUnmarshalConstByteArray(dataIn, bs, " + size.asInt() + "));");
+ } else {
+ out.println(" info." + setter + "(tightUnmarshalByteArray(dataIn, bs));");
+ }
+ } else if (type.equals("ByteSequence")) {
+ out.println(" info." + setter + "(tightUnmarshalByteSequence(dataIn, bs));");
+ } else if (isThrowable(property.getType())) {
+ out.println(" info." + setter + "((" + property.getType().getQualifiedName() + ") tightUnmarsalThrowable(wireFormat, dataIn, bs));");
+ } else if (isCachedProperty(property)) {
+ out.println(" info." + setter + "((" + property.getType().getQualifiedName() + ") tightUnmarsalCachedObject(wireFormat, dataIn, bs));");
+ } else {
+ out.println(" info." + setter + "((" + property.getType().getQualifiedName() + ") tightUnmarsalNestedObject(wireFormat, dataIn, bs));");
+ }
+ }
+
+ protected void generateTightUnmarshalBodyForArrayProperty(PrintWriter out, JProperty property, JAnnotationValue size) {
+ JClass propertyType = property.getType();
+ String arrayType = propertyType.getArrayComponentType().getQualifiedName();
+ String setter = property.getSetter().getSimpleName();
+ out.println();
+ if (size != null) {
+ out.println(" {");
+ out.println(" " + arrayType + " value[] = new " + arrayType + "[" + size.asInt() + "];");
+ out.println(" " + "for( int i=0; i < " + size.asInt() + "; i++ ) {");
+ out.println(" value[i] = (" + arrayType + ") tightUnmarsalNestedObject(wireFormat,dataIn, bs);");
+ out.println(" }");
+ out.println(" info." + setter + "(value);");
+ out.println(" }");
+ } else {
+ out.println(" if (bs.readBoolean()) {");
+ out.println(" short size = dataIn.readShort();");
+ out.println(" " + arrayType + " value[] = new " + arrayType + "[size];");
+ out.println(" for( int i=0; i < size; i++ ) {");
+ out.println(" value[i] = (" + arrayType + ") tightUnmarsalNestedObject(wireFormat,dataIn, bs);");
+ out.println(" }");
+ out.println(" info." + setter + "(value);");
+ out.println(" }");
+ out.println(" else {");
+ out.println(" info." + setter + "(null);");
+ out.println(" }");
+ }
+ }
+
+ protected int generateTightMarshal1Body(PrintWriter out) {
+ List properties = getProperties();
+ int baseSize = 0;
+ for (Iterator iter = properties.iterator(); iter.hasNext();) {
+ JProperty property = (JProperty)iter.next();
+ JAnnotation annotation = property.getAnnotation("openwire:property");
+ JAnnotationValue size = annotation.getValue("size");
+ JClass propertyType = property.getType();
+ String type = propertyType.getSimpleName();
+ String getter = "info." + property.getGetter().getSimpleName() + "()";
+
+ if (type.equals("boolean")) {
+ out.println(" bs.writeBoolean(" + getter + ");");
+ } else if (type.equals("byte")) {
+ baseSize += 1;
+ } else if (type.equals("char")) {
+ baseSize += 2;
+ } else if (type.equals("short")) {
+ baseSize += 2;
+ } else if (type.equals("int")) {
+ baseSize += 4;
+ } else if (type.equals("long")) {
+ out.println(" rc+=tightMarshalLong1(wireFormat, " + getter + ", bs);");
+ } else if (type.equals("String")) {
+ out.println(" rc += tightMarshalString1(" + getter + ", bs);");
+ } else if (type.equals("byte[]")) {
+ if (size == null) {
+ out.println(" rc += tightMarshalByteArray1(" + getter + ", bs);");
+ } else {
+ out.println(" rc += tightMarshalConstByteArray1(" + getter + ", bs, " + size.asInt() + ");");
+ }
+ } else if (type.equals("ByteSequence")) {
+ out.println(" rc += tightMarshalByteSequence1(" + getter + ", bs);");
+ } else if (propertyType.isArrayType()) {
+ if (size != null) {
+ out.println(" rc += tightMarshalObjectArrayConstSize1(wireFormat, " + getter + ", bs, " + size.asInt() + ");");
+ } else {
+ out.println(" rc += tightMarshalObjectArray1(wireFormat, " + getter + ", bs);");
+ }
+ } else if (isThrowable(propertyType)) {
+ out.println(" rc += tightMarshalThrowable1(wireFormat, " + getter + ", bs);");
+ } else {
+ if (isCachedProperty(property)) {
+ out.println(" rc += tightMarshalCachedObject1(wireFormat, (DataStructure)" + getter + ", bs);");
+ } else {
+ out.println(" rc += tightMarshalNestedObject1(wireFormat, (DataStructure)" + getter + ", bs);");
+ }
+ }
+ }
+ return baseSize;
+ }
+
+ protected void generateTightMarshal2Body(PrintWriter out) {
+ List properties = getProperties();
+ for (Iterator iter = properties.iterator(); iter.hasNext();) {
+ JProperty property = (JProperty)iter.next();
+ JAnnotation annotation = property.getAnnotation("openwire:property");
+ JAnnotationValue size = annotation.getValue("size");
+ JClass propertyType = property.getType();
+ String type = propertyType.getSimpleName();
+ String getter = "info." + property.getGetter().getSimpleName() + "()";
+
+ if (type.equals("boolean")) {
+ out.println(" bs.readBoolean();");
+ } else if (type.equals("byte")) {
+ out.println(" dataOut.writeByte(" + getter + ");");
+ } else if (type.equals("char")) {
+ out.println(" dataOut.writeChar(" + getter + ");");
+ } else if (type.equals("short")) {
+ out.println(" dataOut.writeShort(" + getter + ");");
+ } else if (type.equals("int")) {
+ out.println(" dataOut.writeInt(" + getter + ");");
+ } else if (type.equals("long")) {
+ out.println(" tightMarshalLong2(wireFormat, " + getter + ", dataOut, bs);");
+ } else if (type.equals("String")) {
+ out.println(" tightMarshalString2(" + getter + ", dataOut, bs);");
+ } else if (type.equals("byte[]")) {
+ if (size != null) {
+ out.println(" tightMarshalConstByteArray2(" + getter + ", dataOut, bs, " + size.asInt() + ");");
+ } else {
+ out.println(" tightMarshalByteArray2(" + getter + ", dataOut, bs);");
+ }
+ } else if (type.equals("ByteSequence")) {
+ out.println(" tightMarshalByteSequence2(" + getter + ", dataOut, bs);");
+ } else if (propertyType.isArrayType()) {
+ if (size != null) {
+ out.println(" tightMarshalObjectArrayConstSize2(wireFormat, " + getter + ", dataOut, bs, " + size.asInt() + ");");
+ } else {
+ out.println(" tightMarshalObjectArray2(wireFormat, " + getter + ", dataOut, bs);");
+ }
+ } else if (isThrowable(propertyType)) {
+ out.println(" tightMarshalThrowable2(wireFormat, " + getter + ", dataOut, bs);");
+ } else {
+ if (isCachedProperty(property)) {
+ out.println(" tightMarshalCachedObject2(wireFormat, (DataStructure)" + getter + ", dataOut, bs);");
+ } else {
+ out.println(" tightMarshalNestedObject2(wireFormat, (DataStructure)" + getter + ", dataOut, bs);");
+ }
+ }
+ }
+ }
+
+ protected void generateLooseMarshalBody(PrintWriter out) {
+ List properties = getProperties();
+ for (Iterator iter = properties.iterator(); iter.hasNext();) {
+ JProperty property = (JProperty)iter.next();
+ JAnnotation annotation = property.getAnnotation("openwire:property");
+ JAnnotationValue size = annotation.getValue("size");
+ JClass propertyType = property.getType();
+ String type = propertyType.getSimpleName();
+ String getter = "info." + property.getGetter().getSimpleName() + "()";
+
+ if (type.equals("boolean")) {
+ out.println(" dataOut.writeBoolean(" + getter + ");");
+ } else if (type.equals("byte")) {
+ out.println(" dataOut.writeByte(" + getter + ");");
+ } else if (type.equals("char")) {
+ out.println(" dataOut.writeChar(" + getter + ");");
+ } else if (type.equals("short")) {
+ out.println(" dataOut.writeShort(" + getter + ");");
+ } else if (type.equals("int")) {
+ out.println(" dataOut.writeInt(" + getter + ");");
+ } else if (type.equals("long")) {
+ out.println(" looseMarshalLong(wireFormat, " + getter + ", dataOut);");
+ } else if (type.equals("String")) {
+ out.println(" looseMarshalString(" + getter + ", dataOut);");
+ } else if (type.equals("byte[]")) {
+ if (size != null) {
+ out.println(" looseMarshalConstByteArray(wireFormat, " + getter + ", dataOut, " + size.asInt() + ");");
+ } else {
+ out.println(" looseMarshalByteArray(wireFormat, " + getter + ", dataOut);");
+ }
+ } else if (type.equals("ByteSequence")) {
+ out.println(" looseMarshalByteSequence(wireFormat, " + getter + ", dataOut);");
+ } else if (propertyType.isArrayType()) {
+ if (size != null) {
+ out.println(" looseMarshalObjectArrayConstSize(wireFormat, " + getter + ", dataOut, " + size.asInt() + ");");
+ } else {
+ out.println(" looseMarshalObjectArray(wireFormat, " + getter + ", dataOut);");
+ }
+ } else if (isThrowable(propertyType)) {
+ out.println(" looseMarshalThrowable(wireFormat, " + getter + ", dataOut);");
+ } else {
+ if (isCachedProperty(property)) {
+ out.println(" looseMarshalCachedObject(wireFormat, (DataStructure)" + getter + ", dataOut);");
+ } else {
+ out.println(" looseMarshalNestedObject(wireFormat, (DataStructure)" + getter + ", dataOut);");
+ }
+ }
+ }
+ }
+
+ protected void generateLooseUnmarshalBody(PrintWriter out) {
+ List properties = getProperties();
+ for (Iterator iter = properties.iterator(); iter.hasNext();) {
+ JProperty property = (JProperty)iter.next();
+ JAnnotation annotation = property.getAnnotation("openwire:property");
+ JAnnotationValue size = annotation.getValue("size");
+ JClass propertyType = property.getType();
+ String propertyTypeName = propertyType.getSimpleName();
+
+ if (propertyType.isArrayType() && !propertyTypeName.equals("byte[]")) {
+ generateLooseUnmarshalBodyForArrayProperty(out, property, size);
+ } else {
+ generateLooseUnmarshalBodyForProperty(out, property, size);
+ }
+ }
+ }
+
+ protected void generateLooseUnmarshalBodyForProperty(PrintWriter out, JProperty property, JAnnotationValue size) {
+ String setter = property.getSetter().getSimpleName();
+ String type = property.getType().getSimpleName();
+
+ if (type.equals("boolean")) {
+ out.println(" info." + setter + "(dataIn.readBoolean());");
+ } else if (type.equals("byte")) {
+ out.println(" info." + setter + "(dataIn.readByte());");
+ } else if (type.equals("char")) {
+ out.println(" info." + setter + "(dataIn.readChar());");
+ } else if (type.equals("short")) {
+ out.println(" info." + setter + "(dataIn.readShort());");
+ } else if (type.equals("int")) {
+ out.println(" info." + setter + "(dataIn.readInt());");
+ } else if (type.equals("long")) {
+ out.println(" info." + setter + "(looseUnmarshalLong(wireFormat, dataIn));");
+ } else if (type.equals("String")) {
+ out.println(" info." + setter + "(looseUnmarshalString(dataIn));");
+ } else if (type.equals("byte[]")) {
+ if (size != null) {
+ out.println(" info." + setter + "(looseUnmarshalConstByteArray(dataIn, " + size.asInt() + "));");
+ } else {
+ out.println(" info." + setter + "(looseUnmarshalByteArray(dataIn));");
+ }
+ } else if (type.equals("ByteSequence")) {
+ out.println(" info." + setter + "(looseUnmarshalByteSequence(dataIn));");
+ } else if (isThrowable(property.getType())) {
+ out.println(" info." + setter + "((" + property.getType().getQualifiedName() + ") looseUnmarsalThrowable(wireFormat, dataIn));");
+ } else if (isCachedProperty(property)) {
+ out.println(" info." + setter + "((" + property.getType().getQualifiedName() + ") looseUnmarsalCachedObject(wireFormat, dataIn));");
+ } else {
+ out.println(" info." + setter + "((" + property.getType().getQualifiedName() + ") looseUnmarsalNestedObject(wireFormat, dataIn));");
+ }
+ }
+
+ protected void generateLooseUnmarshalBodyForArrayProperty(PrintWriter out, JProperty property, JAnnotationValue size) {
+ JClass propertyType = property.getType();
+ String arrayType = propertyType.getArrayComponentType().getQualifiedName();
+ String setter = property.getSetter().getSimpleName();
+ out.println();
+ if (size != null) {
+ out.println(" {");
+ out.println(" " + arrayType + " value[] = new " + arrayType + "[" + size.asInt() + "];");
+ out.println(" " + "for( int i=0; i < " + size.asInt() + "; i++ ) {");
+ out.println(" value[i] = (" + arrayType + ") looseUnmarsalNestedObject(wireFormat,dataIn);");
+ out.println(" }");
+ out.println(" info." + setter + "(value);");
+ out.println(" }");
+ } else {
+ out.println(" if (dataIn.readBoolean()) {");
+ out.println(" short size = dataIn.readShort();");
+ out.println(" " + arrayType + " value[] = new " + arrayType + "[size];");
+ out.println(" for( int i=0; i < size; i++ ) {");
+ out.println(" value[i] = (" + arrayType + ") looseUnmarsalNestedObject(wireFormat,dataIn);");
+ out.println(" }");
+ out.println(" info." + setter + "(value);");
+ out.println(" }");
+ out.println(" else {");
+ out.println(" info." + setter + "(null);");
+ out.println(" }");
+ }
+ }
+
+ /**
+ * Returns whether or not the given annotation has a mandatory flag on it or
+ * not
+ */
+ protected String getMandatoryFlag(JAnnotation annotation) {
+ JAnnotationValue value = annotation.getValue("mandatory");
+ if (value != null) {
+ String text = value.asString();
+ if (text != null && text.equalsIgnoreCase("true")) {
+ return "true";
+ }
+ }
+ return "false";
+ }
+
+ public List<JClass> getConcreteClasses() {
+ return concreteClasses;
+ }
+
+ public void setConcreteClasses(List<JClass> concreteClasses) {
+ this.concreteClasses = concreteClasses;
+ }
+
+ public File getFactoryFile() {
+ return factoryFile;
+ }
+
+ public void setFactoryFile(File factoryFile) {
+ this.factoryFile = factoryFile;
+ }
+
+ public String getFactoryFileName() {
+ return factoryFileName;
+ }
+
+ public void setFactoryFileName(String factoryFileName) {
+ this.factoryFileName = factoryFileName;
+ }
+
+ public String getIndent() {
+ return indent;
+ }
+
+ public void setIndent(String indent) {
+ this.indent = indent;
+ }
+
+ public String getTargetDir() {
+ return targetDir;
+ }
+
+ public void setTargetDir(String sourceDir) {
+ this.targetDir = sourceDir;
+ }
}
Modified: activemq/trunk/activemq-openwire-generator/src/main/java/org/apache/activemq/openwire/tool/JavaTestsGenerator.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-openwire-generator/src/main/java/org/apache/activemq/openwire/tool/JavaTestsGenerator.java?view=diff&rev=565003&r1=565002&r2=565003
==============================================================================
--- activemq/trunk/activemq-openwire-generator/src/main/java/org/apache/activemq/openwire/tool/JavaTestsGenerator.java (original)
+++ activemq/trunk/activemq-openwire-generator/src/main/java/org/apache/activemq/openwire/tool/JavaTestsGenerator.java Sat Aug 11 22:27:21 2007
@@ -26,188 +26,185 @@
import org.codehaus.jam.JPackage;
import org.codehaus.jam.JProperty;
-
/**
- *
* @version $Revision: 384826 $
*/
public class JavaTestsGenerator extends MultiSourceGenerator {
- protected String targetDir="src/test/java";
+ protected String targetDir = "src/test/java";
- public Object run() {
- if (destDir == null) {
- destDir = new File(targetDir+"/org/apache/activemq/openwire/v" + getOpenwireVersion());
- }
- return super.run();
- }
-
- protected String getClassName(JClass jclass) {
- if( isAbstract(jclass) ) {
- return super.getClassName(jclass) + "TestSupport";
- } else {
- return super.getClassName(jclass) + "Test";
- }
- }
+ public Object run() {
+ if (destDir == null) {
+ destDir = new File(targetDir + "/org/apache/activemq/openwire/v" + getOpenwireVersion());
+ }
+ return super.run();
+ }
+
+ protected String getClassName(JClass jclass) {
+ if (isAbstract(jclass)) {
+ return super.getClassName(jclass) + "TestSupport";
+ } else {
+ return super.getClassName(jclass) + "Test";
+ }
+ }
protected String getBaseClassName(JClass jclass) {
String answer = "DataFileGeneratorTestSupport";
if (superclass != null) {
String name = superclass.getSimpleName();
- if (name!=null
- && !name.equals("JNDIBaseStorable")
- && !name.equals("DataStructureSupport")
- && !name.equals("Object")) {
- answer = name + "Test";
- if (isAbstract(getJclass().getSuperclass()))
- answer += "Support";
+ if (name != null && !name.equals("JNDIBaseStorable") && !name.equals("DataStructureSupport") && !name.equals("Object")) {
+ answer = name + "Test";
+ if (isAbstract(getJclass().getSuperclass())) {
+ answer += "Support";
+ }
}
}
return answer;
}
- private void generateLicence(PrintWriter out) {
-out.println("/**");
-out.println(" *");
-out.println(" * Licensed to the Apache Software Foundation (ASF) under one or more");
-out.println(" * contributor license agreements. See the NOTICE file distributed with");
-out.println(" * this work for additional information regarding copyright ownership.");
-out.println(" * The ASF licenses this file to You under the Apache License, Version 2.0");
-out.println(" * (the \"License\"); you may not use this file except in compliance with");
-out.println(" * the License. You may obtain a copy of the License at");
-out.println(" *");
-out.println(" * http://www.apache.org/licenses/LICENSE-2.0");
-out.println(" *");
-out.println(" * Unless required by applicable law or agreed to in writing, software");
-out.println(" * distributed under the License is distributed on an \"AS IS\" BASIS,");
-out.println(" * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.");
-out.println(" * See the License for the specific language governing permissions and");
-out.println(" * limitations under the License.");
-out.println(" */");
- }
-
- protected void generateFile(PrintWriter out) {
-
- generateLicence(out);
-
-out.println("package org.apache.activemq.openwire.v"+openwireVersion+";");
-out.println("");
-out.println("import java.io.DataInputStream;");
-out.println("import java.io.DataOutputStream;");
-out.println("import java.io.IOException;");
-out.println("");
-out.println("import org.apache.activemq.openwire.*;");
-out.println("import org.apache.activemq.command.*;");
-out.println("");
- for (int i = 0; i < getJclass().getImportedPackages().length; i++) {
- JPackage pkg = getJclass().getImportedPackages()[i];
- for (int j = 0; j < pkg.getClasses().length; j++) {
- JClass clazz = pkg.getClasses()[j];
-out.println("import " + clazz.getQualifiedName() + ";");
- }
- }
-
-out.println("");
-out.println("/**");
-out.println(" * Test case for the OpenWire marshalling for "+jclass.getSimpleName()+"");
-out.println(" *");
-out.println(" *");
-out.println(" * NOTE!: This file is auto generated - do not modify!");
-out.println(" * if you need to make a change, please see the modify the groovy scripts in the");
-out.println(" * under src/gram/script and then use maven openwire:generate to regenerate ");
-out.println(" * this file.");
-out.println(" *");
-out.println(" * @version $Revision: $");
-out.println(" */");
-out.println("public "+getAbstractClassText()+"class "+className+" extends "+baseClass+" {");
-out.println("");
- if (!isAbstractClass()) {
-out.println("");
-out.println(" public static "+jclass.getSimpleName()+"Test SINGLETON = new "+jclass.getSimpleName()+"Test();");
-out.println("");
-out.println(" public Object createObject() throws Exception {");
-out.println(" "+jclass.getSimpleName()+" info = new "+jclass.getSimpleName()+"();");
-out.println(" populateObject(info);");
-out.println(" return info;");
-out.println(" }");
- }
-out.println("");
-out.println(" protected void populateObject(Object object) throws Exception {");
-out.println(" super.populateObject(object);");
-out.println(" "+getJclass().getSimpleName()+" info = ("+getJclass().getSimpleName()+") object;");
-out.println("");
-
- TestDataGenerator generator = new TestDataGenerator();
-
- List properties = getProperties();
- for (Iterator iter = properties.iterator(); iter.hasNext();) {
- JProperty property = (JProperty) iter.next();
-
- JAnnotation annotation = property.getAnnotation("openwire:property");
- String size = stringValue(annotation, "size");
- String testSize = stringValue(annotation, "testSize");
- String type = property.getType().getSimpleName();
- boolean cached = isCachedProperty(property);
- String propertyName = property.getSimpleName();
- if ("-1".equals(testSize))
- continue;
-
-
- String setterName = property.getSetter().getSimpleName();
-
- if( type.equals("boolean")) {
-out.println(" info."+setterName+"("+generator.createBool()+");");
- } else if( type.equals("byte")) {
-out.println(" info."+setterName+"("+generator.createByte()+");");
- } else if( type.equals("char")) {
-out.println(" info."+setterName+"("+generator.createChar()+");");
- } else if( type.equals("short")) {
-out.println(" info."+setterName+"("+generator.createShort()+");");
- } else if( type.equals("int")) {
-out.println(" info."+setterName+"("+generator.createInt()+");");
- } else if( type.equals("long")) {
-out.println(" info."+setterName+"("+generator.createLong()+");");
- } else if( type.equals("byte[]")) {
-out.println(" info."+setterName+"("+generator.createByteArray(propertyName)+");");
- } else if( type.equals("String")) {
-out.println(" info."+setterName+"(\""+generator.createString(propertyName)+"\");");
- } else if( type.equals("ByteSequence")) {
-out.println(" {");
-out.println(" byte data[] = "+generator.createByteArray(propertyName)+";");
-out.println(" info."+setterName+"(new org.apache.activemq.util.ByteSequence(data,0,data.length));");
-out.println( "}");
- } else if( type.equals("Throwable")) {
-out.println(" info."+setterName+"(createThrowable(\""+generator.createString(propertyName)+"\"));");
- } else {
- if( property.getType().isArrayType() ) {
- String arrayType = property.getType().getArrayComponentType().getSimpleName();
- if (size == null)
- size = "2";
- if (arrayType == jclass.getSimpleName())
- size = "0";
-out.println(" {");
-out.println(" "+arrayType+" value[] = new "+arrayType+"["+size+"];");
-out.println(" for( int i=0; i < "+size+"; i++ ) {");
-out.println(" value[i] = create"+arrayType+"(\""+generator.createString(propertyName)+"\");");
-out.println(" }");
-out.println(" info."+setterName+"(value);");
-out.println(" }");
- } else {
-out.println(" info."+setterName+"(create"+type+"(\""+generator.createString(propertyName)+"\"));");
- }
- }
- }
-
-out.println(" }");
-out.println("}");
- }
-
- public String getTargetDir() {
- return targetDir;
- }
-
- public void setTargetDir(String targetDir) {
- this.targetDir = targetDir;
- }
-}
+ private void generateLicence(PrintWriter out) {
+ out.println("/**");
+ out.println(" *");
+ out.println(" * Licensed to the Apache Software Foundation (ASF) under one or more");
+ out.println(" * contributor license agreements. See the NOTICE file distributed with");
+ out.println(" * this work for additional information regarding copyright ownership.");
+ out.println(" * The ASF licenses this file to You under the Apache License, Version 2.0");
+ out.println(" * (the \"License\"); you may not use this file except in compliance with");
+ out.println(" * the License. You may obtain a copy of the License at");
+ out.println(" *");
+ out.println(" * http://www.apache.org/licenses/LICENSE-2.0");
+ out.println(" *");
+ out.println(" * Unless required by applicable law or agreed to in writing, software");
+ out.println(" * distributed under the License is distributed on an \"AS IS\" BASIS,");
+ out.println(" * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.");
+ out.println(" * See the License for the specific language governing permissions and");
+ out.println(" * limitations under the License.");
+ out.println(" */");
+ }
+
+ protected void generateFile(PrintWriter out) {
+
+ generateLicence(out);
+
+ out.println("package org.apache.activemq.openwire.v" + openwireVersion + ";");
+ out.println("");
+ out.println("import java.io.DataInputStream;");
+ out.println("import java.io.DataOutputStream;");
+ out.println("import java.io.IOException;");
+ out.println("");
+ out.println("import org.apache.activemq.openwire.*;");
+ out.println("import org.apache.activemq.command.*;");
+ out.println("");
+ for (int i = 0; i < getJclass().getImportedPackages().length; i++) {
+ JPackage pkg = getJclass().getImportedPackages()[i];
+ for (int j = 0; j < pkg.getClasses().length; j++) {
+ JClass clazz = pkg.getClasses()[j];
+ out.println("import " + clazz.getQualifiedName() + ";");
+ }
+ }
+ out.println("");
+ out.println("/**");
+ out.println(" * Test case for the OpenWire marshalling for " + jclass.getSimpleName() + "");
+ out.println(" *");
+ out.println(" *");
+ out.println(" * NOTE!: This file is auto generated - do not modify!");
+ out.println(" * if you need to make a change, please see the modify the groovy scripts in the");
+ out.println(" * under src/gram/script and then use maven openwire:generate to regenerate ");
+ out.println(" * this file.");
+ out.println(" *");
+ out.println(" * @version $Revision: $");
+ out.println(" */");
+ out.println("public " + getAbstractClassText() + "class " + className + " extends " + baseClass + " {");
+ out.println("");
+ if (!isAbstractClass()) {
+ out.println("");
+ out.println(" public static " + jclass.getSimpleName() + "Test SINGLETON = new " + jclass.getSimpleName() + "Test();");
+ out.println("");
+ out.println(" public Object createObject() throws Exception {");
+ out.println(" " + jclass.getSimpleName() + " info = new " + jclass.getSimpleName() + "();");
+ out.println(" populateObject(info);");
+ out.println(" return info;");
+ out.println(" }");
+ }
+ out.println("");
+ out.println(" protected void populateObject(Object object) throws Exception {");
+ out.println(" super.populateObject(object);");
+ out.println(" " + getJclass().getSimpleName() + " info = (" + getJclass().getSimpleName() + ") object;");
+ out.println("");
+
+ TestDataGenerator generator = new TestDataGenerator();
+
+ List properties = getProperties();
+ for (Iterator iter = properties.iterator(); iter.hasNext();) {
+ JProperty property = (JProperty)iter.next();
+
+ JAnnotation annotation = property.getAnnotation("openwire:property");
+ String size = stringValue(annotation, "size");
+ String testSize = stringValue(annotation, "testSize");
+ String type = property.getType().getSimpleName();
+// boolean cached = isCachedProperty(property);
+ String propertyName = property.getSimpleName();
+ if ("-1".equals(testSize)) {
+ continue;
+ }
+
+ String setterName = property.getSetter().getSimpleName();
+
+ if (type.equals("boolean")) {
+ out.println(" info." + setterName + "(" + generator.createBool() + ");");
+ } else if (type.equals("byte")) {
+ out.println(" info." + setterName + "(" + generator.createByte() + ");");
+ } else if (type.equals("char")) {
+ out.println(" info." + setterName + "(" + generator.createChar() + ");");
+ } else if (type.equals("short")) {
+ out.println(" info." + setterName + "(" + generator.createShort() + ");");
+ } else if (type.equals("int")) {
+ out.println(" info." + setterName + "(" + generator.createInt() + ");");
+ } else if (type.equals("long")) {
+ out.println(" info." + setterName + "(" + generator.createLong() + ");");
+ } else if (type.equals("byte[]")) {
+ out.println(" info." + setterName + "(" + generator.createByteArray(propertyName) + ");");
+ } else if (type.equals("String")) {
+ out.println(" info." + setterName + "(\"" + generator.createString(propertyName) + "\");");
+ } else if (type.equals("ByteSequence")) {
+ out.println(" {");
+ out.println(" byte data[] = " + generator.createByteArray(propertyName) + ";");
+ out.println(" info." + setterName + "(new org.apache.activemq.util.ByteSequence(data,0,data.length));");
+ out.println("}");
+ } else if (type.equals("Throwable")) {
+ out.println(" info." + setterName + "(createThrowable(\"" + generator.createString(propertyName) + "\"));");
+ } else {
+ if (property.getType().isArrayType()) {
+ String arrayType = property.getType().getArrayComponentType().getSimpleName();
+ if (size == null) {
+ size = "2";
+ }
+ if (arrayType == jclass.getSimpleName()) {
+ size = "0";
+ }
+ out.println(" {");
+ out.println(" " + arrayType + " value[] = new " + arrayType + "[" + size + "];");
+ out.println(" for( int i=0; i < " + size + "; i++ ) {");
+ out.println(" value[i] = create" + arrayType + "(\"" + generator.createString(propertyName) + "\");");
+ out.println(" }");
+ out.println(" info." + setterName + "(value);");
+ out.println(" }");
+ } else {
+ out.println(" info." + setterName + "(create" + type + "(\"" + generator.createString(propertyName) + "\"));");
+ }
+ }
+ }
+
+ out.println(" }");
+ out.println("}");
+ }
+
+ public String getTargetDir() {
+ return targetDir;
+ }
+
+ public void setTargetDir(String targetDir) {
+ this.targetDir = targetDir;
+ }
+}
Modified: activemq/trunk/activemq-openwire-generator/src/main/java/org/apache/activemq/openwire/tool/MultiSourceGenerator.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-openwire-generator/src/main/java/org/apache/activemq/openwire/tool/MultiSourceGenerator.java?view=diff&rev=565003&r1=565002&r2=565003
==============================================================================
--- activemq/trunk/activemq-openwire-generator/src/main/java/org/apache/activemq/openwire/tool/MultiSourceGenerator.java (original)
+++ activemq/trunk/activemq-openwire-generator/src/main/java/org/apache/activemq/openwire/tool/MultiSourceGenerator.java Sat Aug 11 22:27:21 2007
@@ -16,12 +16,6 @@
*/
package org.apache.activemq.openwire.tool;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.taskdefs.FixCRLF;
-import org.codehaus.jam.JClass;
-import org.codehaus.jam.JProperty;
-import org.codehaus.jam.JamClassIterator;
-
import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;
@@ -30,12 +24,17 @@
import java.util.List;
import java.util.Set;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.taskdefs.FixCRLF;
+import org.codehaus.jam.JClass;
+import org.codehaus.jam.JProperty;
+import org.codehaus.jam.JamClassIterator;
+
/**
- *
* @version $Revision: 386442 $
*/
public abstract class MultiSourceGenerator extends OpenWireGenerator {
- protected Set manuallyMaintainedClasses = new HashSet();
+ protected Set<String> manuallyMaintainedClasses = new HashSet<String>();
protected File destDir;
protected File destFile;
@@ -71,8 +70,8 @@
/**
* Returns all the valid properties available on the current class
*/
- public List getProperties() {
- List answer = new ArrayList();
+ public List<JProperty> getProperties() {
+ List<JProperty> answer = new ArrayList<JProperty>();
JProperty[] properties = jclass.getDeclaredProperties();
for (int i = 0; i < properties.length; i++) {
JProperty property = properties[i];
@@ -106,17 +105,16 @@
try {
out = new PrintWriter(new FileWriter(destFile));
generateFile(out);
- }
- catch (Exception e) {
+ } catch (Exception e) {
throw new RuntimeException(e);
- }
- finally {
+ } finally {
if (out != null) {
out.close();
}
}
-
- // Use the FixCRLF Ant Task to make sure the file has consistent newlines
+
+ // Use the FixCRLF Ant Task to make sure the file has consistent
+ // newlines
// so that SVN does not complain on checkin.
Project project = new Project();
project.init();
@@ -143,7 +141,7 @@
protected String getClassName(JClass jclass) {
return jclass.getSimpleName();
}
-
+
public boolean isAbstractClass() {
return jclass != null && jclass.isAbstract();
}
@@ -151,84 +149,84 @@
public String getAbstractClassText() {
return isAbstractClass() ? "abstract " : "";
}
-
+
public boolean isMarshallerAware() {
return isMarshallAware(jclass);
}
protected void initialiseManuallyMaintainedClasses() {
- String[] names = { "ActiveMQDestination", "ActiveMQTempDestination", "ActiveMQQueue", "ActiveMQTopic", "ActiveMQTempQueue", "ActiveMQTempTopic",
- "BaseCommand",
- "ActiveMQMessage", "ActiveMQTextMessage", "ActiveMQMapMessage", "ActiveMQBytesMessage", "ActiveMQStreamMessage",
- "ActiveMQBlobMessage", "DataStructureSupport", "WireFormatInfo", "ActiveMQObjectMessage" };
+ String[] names = {
+ "ActiveMQDestination", "ActiveMQTempDestination", "ActiveMQQueue", "ActiveMQTopic", "ActiveMQTempQueue", "ActiveMQTempTopic", "BaseCommand", "ActiveMQMessage", "ActiveMQTextMessage",
+ "ActiveMQMapMessage", "ActiveMQBytesMessage", "ActiveMQStreamMessage", "ActiveMQBlobMessage", "DataStructureSupport", "WireFormatInfo", "ActiveMQObjectMessage"
+ };
for (int i = 0; i < names.length; i++) {
manuallyMaintainedClasses.add(names[i]);
}
}
- public String getBaseClass() {
- return baseClass;
- }
-
- public void setBaseClass(String baseClass) {
- this.baseClass = baseClass;
- }
-
- public String getClassName() {
- return className;
- }
-
- public void setClassName(String className) {
- this.className = className;
- }
-
- public File getDestDir() {
- return destDir;
- }
-
- public void setDestDir(File destDir) {
- this.destDir = destDir;
- }
-
- public File getDestFile() {
- return destFile;
- }
-
- public void setDestFile(File destFile) {
- this.destFile = destFile;
- }
-
- public JClass getJclass() {
- return jclass;
- }
-
- public void setJclass(JClass jclass) {
- this.jclass = jclass;
- }
-
- public Set getManuallyMaintainedClasses() {
- return manuallyMaintainedClasses;
- }
-
- public void setManuallyMaintainedClasses(Set manuallyMaintainedClasses) {
- this.manuallyMaintainedClasses = manuallyMaintainedClasses;
- }
-
- public String getSimpleName() {
- return simpleName;
- }
-
- public void setSimpleName(String simpleName) {
- this.simpleName = simpleName;
- }
-
- public JClass getSuperclass() {
- return superclass;
- }
-
- public void setSuperclass(JClass superclass) {
- this.superclass = superclass;
- }
+ public String getBaseClass() {
+ return baseClass;
+ }
+
+ public void setBaseClass(String baseClass) {
+ this.baseClass = baseClass;
+ }
+
+ public String getClassName() {
+ return className;
+ }
+
+ public void setClassName(String className) {
+ this.className = className;
+ }
+
+ public File getDestDir() {
+ return destDir;
+ }
+
+ public void setDestDir(File destDir) {
+ this.destDir = destDir;
+ }
+
+ public File getDestFile() {
+ return destFile;
+ }
+
+ public void setDestFile(File destFile) {
+ this.destFile = destFile;
+ }
+
+ public JClass getJclass() {
+ return jclass;
+ }
+
+ public void setJclass(JClass jclass) {
+ this.jclass = jclass;
+ }
+
+ public Set<String> getManuallyMaintainedClasses() {
+ return manuallyMaintainedClasses;
+ }
+
+ public void setManuallyMaintainedClasses(Set<String> manuallyMaintainedClasses) {
+ this.manuallyMaintainedClasses = manuallyMaintainedClasses;
+ }
+
+ public String getSimpleName() {
+ return simpleName;
+ }
+
+ public void setSimpleName(String simpleName) {
+ this.simpleName = simpleName;
+ }
+
+ public JClass getSuperclass() {
+ return superclass;
+ }
+
+ public void setSuperclass(JClass superclass) {
+ this.superclass = superclass;
+ }
}