You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kp...@apache.org on 2006/12/15 20:12:18 UTC
svn commit: r487623 - in
/incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools:
CppGenerator.java Generator.java Main.java
Author: kpvdr
Date: Fri Dec 15 11:12:17 2006
New Revision: 487623
URL: http://svn.apache.org/viewvc?view=rev&rev=487623
Log:
Fixed lack of refs in some generated C++ files; code comments and other minor changes.
Modified:
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/CppGenerator.java
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/Generator.java
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/Main.java
Modified: incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/CppGenerator.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/CppGenerator.java?view=diff&rev=487623&r1=487622&r2=487623
==============================================================================
--- incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/CppGenerator.java (original)
+++ incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/CppGenerator.java Fri Dec 15 11:12:17 2006
@@ -250,14 +250,11 @@
{
String namespaceSpan = sb.substring(namespaceStartIndex, namespaceEndIndex) + cr;
sb.delete(namespaceStartIndex, namespaceEndIndex);
- Iterator<AmqpVersion> 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 @@
{
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 @@
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 @@
{
// 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 @@
{
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 @@
{
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 @@
String indent = Utils.createSpaces(indentSize);
StringBuffer sb = new StringBuffer();
- Iterator<AmqpVersion> vItr = globalVersionSet.iterator();
- while (vItr.hasNext())
+ for (AmqpVersion version : globalVersionSet)
{
- AmqpVersion version = vItr.next();
Iterator<String> cItr = model.classMap.keySet().iterator();
while (cItr.hasNext())
{
@@ -1670,16 +1651,14 @@
throws AmqpTypeMappingException
{
StringBuffer sb = new StringBuffer();
- AmqpVersion[] versionArray = new AmqpVersion[versionSet.size()];
- versionSet.toArray(versionArray);
- for (int i=0; i<versionArray.length; i++)
+ for (AmqpVersion v : versionSet)
{
- if (i != 0)
+ if (!v.equals(versionSet.first()))
sb.append(" || ");
- if (versionArray.length > 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 @@
private String parseForReservedWords(String name, String context)
{
- for (int i=0; i<cppReservedWords.length; i++)
- if (name.compareTo(cppReservedWords[i]) == 0)
+ for (String cppReservedWord : cppReservedWords)
+ if (name.compareTo(cppReservedWord) == 0)
{
if (!quietFlag)
{
@@ -1699,8 +1678,8 @@
return name + "_";
}
- for (int i=0; i<cppCommonDefines.length; i++)
- if (name.compareTo(cppCommonDefines[i]) == 0)
+ for (String cppCommonDefine : cppCommonDefines)
+ if (name.compareTo(cppCommonDefine) == 0)
{
if (!quietFlag)
{
Modified: incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/Generator.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/Generator.java?view=diff&rev=487623&r1=487622&r2=487623
==============================================================================
--- incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/Generator.java (original)
+++ incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/Generator.java Fri Dec 15 11:12:17 2006
@@ -106,40 +106,41 @@
if (modelTemplateFiles.length > 0)
{
System.out.println("Model template file(s):");
- for (int t=0; t<modelTemplateFiles.length; t++)
+ for (File mtf : modelTemplateFiles)
{
- System.out.println(" " + modelTemplateFiles[t].getAbsolutePath());
- String template[] = {modelTemplateFiles[t].getName(), loadTemplate(modelTemplateFiles[t])};
+ System.out.println(" " + mtf.getAbsolutePath());
+ String template[] = {mtf.getName(), loadTemplate(mtf)};
modelTemplateList.add(template);
}
}
if (classTemplatesFiles.length > 0)
{
System.out.println("Class template file(s):");
- for (int c=0; c<classTemplatesFiles.length; c++)
+ //for (int c=0; c<classTemplatesFiles.length; c++)
+ for (File ctf : classTemplatesFiles)
{
- System.out.println(" " + classTemplatesFiles[c].getAbsolutePath());
- String template[] = {classTemplatesFiles[c].getName(), loadTemplate(classTemplatesFiles[c])};
+ System.out.println(" " + ctf.getAbsolutePath());
+ String template[] = {ctf.getName(), loadTemplate(ctf)};
classTemplateList.add(template);
}
}
if (methodTemplatesFiles.length > 0)
{
System.out.println("Method template file(s):");
- for (int m=0; m<methodTemplatesFiles.length; m++)
+ for (File mtf : methodTemplatesFiles)
{
- System.out.println(" " + methodTemplatesFiles[m].getAbsolutePath());
- String template[] = {methodTemplatesFiles[m].getName(), loadTemplate(methodTemplatesFiles[m])};
+ System.out.println(" " + mtf.getAbsolutePath());
+ String template[] = {mtf.getName(), loadTemplate(mtf)};
methodTemplateList.add(template);
}
}
if (fieldTemplatesFiles.length > 0)
{
System.out.println("Field template file(s):");
- for (int f=0; f<fieldTemplatesFiles.length; f++)
+ for (File ftf : fieldTemplatesFiles)
{
- System.out.println(" " + fieldTemplatesFiles[f].getAbsolutePath());
- String template[] = {fieldTemplatesFiles[f].getName(), loadTemplate(fieldTemplatesFiles[f])};
+ System.out.println(" " + ftf.getAbsolutePath());
+ String template[] = {ftf.getName(), loadTemplate(ftf)};
fieldTemplateList.add(template);
}
}
@@ -178,9 +179,9 @@
this.genDir = genDir.getAbsolutePath();
// Use all model-level templates
- for (int t = 0; t < modelTemplateList.size(); t++)
+ for (String[] mt : modelTemplateList)
{
- processTemplateA(modelTemplateList.get(t));
+ processTemplateA(mt);
}
// Cycle through classes
@@ -191,9 +192,9 @@
AmqpClass thisClass = model.classMap.get(className);
// Use all class-level templates
- for (int c = 0; c < classTemplateList.size(); c++)
+ for (String[] ct : classTemplateList)
{
- processTemplateB(classTemplateList.get(c), thisClass);
+ processTemplateB(ct, thisClass);
}
// Cycle through all methods
@@ -204,9 +205,9 @@
AmqpMethod method = thisClass.methodMap.get(methodName);
// Use all method-level templates
- for (int m = 0; m < methodTemplateList.size(); m++)
+ for (String[] mt : methodTemplateList)
{
- processTemplateC(methodTemplateList.get(m), thisClass, method);
+ processTemplateC(mt, thisClass, method);
}
// Cycle through all fields
@@ -217,9 +218,9 @@
AmqpField field = method.fieldMap.get(fieldName);
// Use all field-level templates
- for (int f = 0; f < fieldTemplateList.size(); f++)
+ for (String[] ft : fieldTemplateList)
{
- processTemplateD(fieldTemplateList.get(f), thisClass, method, field);
+ processTemplateD(ft, thisClass, method, field);
}
}
}
@@ -232,14 +233,21 @@
int lend = sb.indexOf(Utils.lineSeparator, tokStart) + 1; // Include cr at end of line
String tline = sb.substring(tokEnd, lend); // Line excluding line marker, including cr
sb.delete(tokStart, lend);
- AmqpVersion[] versionArray = new AmqpVersion[globalVersionSet.size()];
- globalVersionSet.toArray(versionArray);
- for (int i=0; i<versionArray.length; i++)
+
+ for (AmqpVersion v : globalVersionSet)
{
// Insert copy of target line
StringBuffer isb = new StringBuffer(tline);
- replaceToken(isb, "${major}", String.valueOf(versionArray[i].getMajor()));
- replaceToken(isb, "${minor}", String.valueOf(versionArray[i].getMinor()));
+ if (isb.indexOf("${protocol-version-list-entry}") >= 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();
}
Modified: incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/Main.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/Main.java?view=diff&rev=487623&r1=487622&r2=487623
==============================================================================
--- incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/Main.java (original)
+++ incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/Main.java Fri Dec 15 11:12:17 2006
@@ -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 @@
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 @@
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 @@
throws IOException, SAXException, AmqpParseException, AmqpTypeMappingException
{
System.out.println("XML files: " + xmlFiles);
- for (int i=0; i<xmlFiles.size(); i++)
+ for (String filename : xmlFiles)
{
- String filename = xmlFiles.get(i);
File f = new File(filename);
if (f.exists())
{
@@ -236,13 +246,13 @@
// System.out.println();
// System.out.println("*** Debug output ***");
// System.out.println();
-// versionSet.print(System.out, 0, 2);
+// versionSet.print(System.out, 0, 2); // List of loaded versions
// System.out.println();
-// constants.print(System.out, 0, 2);
+// constants.print(System.out, 0, 2); // List of constants
// System.out.println();
-// domainMap.print(System.out, 0, 2);
+// domainMap.print(System.out, 0, 2); // List of domains
// System.out.println();
-// model.print(System.out, 0, 2);
+// model.print(System.out, 0, 2); // Internal version map model
// System.out.println();
// System.out.println("*** End debug output ***");
// System.out.println();
@@ -250,6 +260,7 @@
public static void main(String[] args)
{
+ // TODO: This is a simple and klunky way of hangling command-line args, and could be improved upon.
if (args.length < 2)
usage();
try { new Main().run(args); }