From 5d970981ae65579853676572cce96673dd66ffe2 Mon Sep 17 00:00:00 2001 From: Kim van der Riet Date: Fri, 15 Dec 2006 19:12:17 +0000 Subject: Fixed lack of refs in some generated C++ files; code comments and other minor changes. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@487623 13f79535-47bb-0310-9956-ffa450edef68 --- .../src/org/apache/qpid/gentools/CppGenerator.java | 49 ++++++------------ .../src/org/apache/qpid/gentools/Generator.java | 58 ++++++++++++---------- gentools/src/org/apache/qpid/gentools/Main.java | 25 +++++++--- 3 files changed, 65 insertions(+), 67 deletions(-) (limited to 'gentools/src') diff --git a/gentools/src/org/apache/qpid/gentools/CppGenerator.java b/gentools/src/org/apache/qpid/gentools/CppGenerator.java index 0963f39883..7aa6b2d21c 100644 --- a/gentools/src/org/apache/qpid/gentools/CppGenerator.java +++ b/gentools/src/org/apache/qpid/gentools/CppGenerator.java @@ -250,14 +250,11 @@ public class CppGenerator extends Generator { String namespaceSpan = sb.substring(namespaceStartIndex, namespaceEndIndex) + cr; sb.delete(namespaceStartIndex, namespaceEndIndex); - Iterator vItr = method.versionSet.iterator(); - while (vItr.hasNext()) + for (AmqpVersion v : method.versionSet) { - AmqpVersion version = vItr.next(); StringBuffer nssb = new StringBuffer(namespaceSpan); - processTemplate(nssb, thisClass, method, null, template[templateFileNameIndex], - version); - sb.insert(namespaceStartIndex, nssb); + processTemplate(nssb, thisClass, method, null, template[templateFileNameIndex], v); + sb.insert(namespaceStartIndex, nssb); } // Process all tokens *not* within the namespace span prior to inserting namespaces processTemplate(sb, thisClass, method, null, template[templateFileNameIndex], null); @@ -545,14 +542,6 @@ public class CppGenerator extends Generator { codeSnippet = generateDecodeMethodContents(fieldMap, version, 8); } -// else if (token.compareTo("${mb_field_list_initializer}") == 0) -// { -// codeSnippet = generateFieldList(fieldMap, version, false, true, 8); -// } -// else if (token.compareTo("${mb_field_list_declare}") == 0) -// { -// codeSnippet = generateFieldList(fieldMap, version, true, false, 8); -// } else // Oops! { @@ -605,10 +594,6 @@ public class CppGenerator extends Generator String value = constant.firstKey(); sb.append(indent + "static const char* " + constant.name + "() { return \"" + constant.firstKey() + "\"; }" + cr); -// sb.append(indent + "std::string " + constant.name + "Str(\"" + -// constant.firstKey() + "\");" + cr); -// sb.append(indent + "static const std::string& " + constant.name + "AsString() { return " + -// constant.name + "Str; }" + cr); if (Utils.containsOnlyDigits(value)) { sb.append(indent + "static int " + constant.name + "AsInt() { return " + @@ -625,7 +610,6 @@ public class CppGenerator extends Generator { // Return version-specific constant sb.append(generateVersionDependentGet(constant, "const char*", "", "\"", "\"", indentSize, tabSize)); -// sb.append(generateVersionDependentGet(constant, "const string&", "AsString", "string(\"", "\")", indentSize, tabSize)); sb.append(generateVersionDependentGet(constant, "int", "AsInt", "", "", indentSize, tabSize)); sb.append(generateVersionDependentGet(constant, "double", "AsDouble", "(double)", "", indentSize, tabSize)); sb.append(cr); @@ -1033,7 +1017,6 @@ public class CppGenerator extends Generator { AmqpOrdinalFieldMap fieldMap = ofmItr.next(); AmqpVersionSet versionSet = overloadededParameterMap.get(fieldMap); -// boolean versionConsistentFlag = versionSet.size() == globalVersionSet.size(); if (!first) sb.append(cr); sb.append(indent + "void " + outerclassName + "::" + thisClass.name + "::" + @@ -1490,7 +1473,7 @@ public class CppGenerator extends Generator { int ordinal = oItr.next(); String[] fieldDomainPair = ordinalFieldMap.get(ordinal); - sb.append(indent + (defineFlag ? fieldDomainPair[FIELD_DOMAIN] + " " : "") + + sb.append(indent + (defineFlag ? setRef(fieldDomainPair[FIELD_DOMAIN]) + " " : "") + fieldDomainPair[FIELD_NAME] + (initializerFlag ? "(" + fieldDomainPair[FIELD_NAME] + ")" : "") + (oItr.hasNext() ? "," : "") + cr); } @@ -1628,10 +1611,8 @@ public class CppGenerator extends Generator String indent = Utils.createSpaces(indentSize); StringBuffer sb = new StringBuffer(); - Iterator vItr = globalVersionSet.iterator(); - while (vItr.hasNext()) + for (AmqpVersion version : globalVersionSet) { - AmqpVersion version = vItr.next(); Iterator cItr = model.classMap.keySet().iterator(); while (cItr.hasNext()) { @@ -1670,16 +1651,14 @@ public class CppGenerator extends Generator throws AmqpTypeMappingException { StringBuffer sb = new StringBuffer(); - AmqpVersion[] versionArray = new AmqpVersion[versionSet.size()]; - versionSet.toArray(versionArray); - for (int i=0; i 1) + if (versionSet.size() > 1) sb.append("("); - sb.append("version.equals(" + versionArray[i].getMajor() + ", " + versionArray[i].getMinor() + ")"); - if (versionArray.length > 1) + sb.append("version.equals(" + v.getMajor() + ", " + v.getMinor() + ")"); + if (versionSet.size() > 1) sb.append(")"); } return sb.toString(); @@ -1687,8 +1666,8 @@ public class CppGenerator extends Generator private String parseForReservedWords(String name, String context) { - for (int i=0; i 0) { System.out.println("Model template file(s):"); - for (int t=0; t 0) { System.out.println("Class template file(s):"); - for (int c=0; c 0) { System.out.println("Method template file(s):"); - for (int m=0; m 0) { System.out.println("Field template file(s):"); - for (int f=0; f= 0) + { + String versionListEntry = " { ${major}, ${minor} }" + + (v.equals(globalVersionSet.last()) ? "" : ","); + replaceToken(isb, "${protocol-version-list-entry}", String.valueOf(versionListEntry)); + } + if (isb.indexOf("${major}") >= 0) + replaceToken(isb, "${major}", String.valueOf(v.getMajor())); + if (isb.indexOf("${minor}") >= 0) + replaceToken(isb, "${minor}", String.valueOf(v.getMinor())); sb.insert(tokStart, isb.toString()); tokStart += isb.length(); } diff --git a/gentools/src/org/apache/qpid/gentools/Main.java b/gentools/src/org/apache/qpid/gentools/Main.java index 52be82b87e..28bf7e02c1 100644 --- a/gentools/src/org/apache/qpid/gentools/Main.java +++ b/gentools/src/org/apache/qpid/gentools/Main.java @@ -21,6 +21,7 @@ package org.apache.qpid.gentools; import java.io.File; +import java.io.FileNotFoundException; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; @@ -96,8 +97,17 @@ public class Main analyzeXML(); // 2. Load up all templates + try + { generator.initializeTemplates(modelTemplateFiles, classTemplateFiles, methodTemplateFiles, fieldTemplateFiles); + } + catch (FileNotFoundException e) + { + System.err.println("Error: Unable to load template file (check -t option on command-line):"); + System.err.println(e.getMessage()); + return; + } // 3. Generate output generator.generate(new File(outDir)); @@ -159,7 +169,8 @@ public class Main modelTemplateFiles = new File[] { new File(tmplDir + Utils.fileSeparator + "MethodRegistryClass.tmpl"), - new File(tmplDir + Utils.fileSeparator + "AmqpConstantsClass.tmpl") + new File(tmplDir + Utils.fileSeparator + "AmqpConstantsClass.tmpl"), + new File(tmplDir + Utils.fileSeparator + "ProtocolVersionListClass.tmpl") }; classTemplateFiles = new File[] { @@ -202,9 +213,8 @@ public class Main throws IOException, SAXException, AmqpParseException, AmqpTypeMappingException { System.out.println("XML files: " + xmlFiles); - for (int i=0; i