Author: kpvdr
Date: Wed Jan 3 12:15:19 2007
New Revision: 492280
URL: http://svn.apache.org/viewvc?view=rev&rev=492280
Log:
Added ability for code generator to omit elements from the XML specification
Modified:
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpClass.java
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpConstantSet.java
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpDomainMap.java
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpDomainVersionMap.java
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpField.java
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpFieldMap.java
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpFlagMap.java
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpMethod.java
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpMethodMap.java
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpModel.java
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpOrdinalVersionMap.java
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpVersion.java
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpVersionSet.java
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/Generator.java
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/JavaGenerator.java
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/NodeAware.java
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/Utils.java
Modified:
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpClass.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpClass.java?view=diff&rev=492280&r1=492279&r2=492280
==============================================================================
---
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpClass.java
(original)
+++
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpClass.java
Wed Jan 3 12:15:19 2007
@@ -25,7 +25,7 @@
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
-public class AmqpClass implements Printable, NodeAware
+public class AmqpClass implements Printable, NodeAware
{
public LanguageConverter converter;
public AmqpVersionSet versionSet;
@@ -44,50 +44,82 @@
indexMap = new AmqpOrdinalVersionMap();
}
- public void addFromNode(Node classNode, int ordinal, AmqpVersion
version)
+ public boolean addFromNode(Node classNode, int ordinal, AmqpVersion
version)
throws AmqpParseException, AmqpTypeMappingException
{
versionSet.add(version);
int index = Utils.getNamedIntegerAttribute(classNode, "index");
- AmqpVersionSet versionSet = indexMap.get(index);
- if (versionSet != null)
- versionSet.add(version);
+ AmqpVersionSet indexVersionSet = indexMap.get(index);
+ if (indexVersionSet != null)
+ indexVersionSet.add(version);
else
{
- versionSet = new AmqpVersionSet();
- versionSet.add(version);
- indexMap.put(index, versionSet);
+ indexVersionSet = new AmqpVersionSet();
+ indexVersionSet.add(version);
+ indexMap.put(index, indexVersionSet);
}
NodeList nList = classNode.getChildNodes();
int fieldCntr = 0;
- int methodCntr = 0;
for (int i=0; i<nList.getLength(); i++)
{
Node child = nList.item(i);
if (child.getNodeName().compareTo(Utils.ELEMENT_FIELD)
== 0)
{
- String fieldName =
converter.prepareDomainName(Utils.getNamedAttribute(child,
Utils.ATTRIBUTE_NAME));
+ String fieldName =
converter.prepareDomainName(Utils.getNamedAttribute(child,
+ Utils.ATTRIBUTE_NAME));
AmqpField thisField = fieldMap.get(fieldName);
if (thisField == null)
{
thisField = new AmqpField(fieldName,
converter);
fieldMap.put(fieldName, thisField);
}
- thisField.addFromNode(child, fieldCntr,
version);
+ if (!thisField.addFromNode(child, fieldCntr++,
version))
+ {
+ String className =
converter.prepareClassName(Utils.getNamedAttribute(classNode,
+ Utils.ATTRIBUTE_NAME));
+ System.out.println("INFO: Generation
supression tag found for field " +
+ className + "." +
fieldName + " - removing.");
+ thisField.removeVersion(version);
+ fieldMap.remove(fieldName);
+ }
fieldCntr++;
}
else if
(child.getNodeName().compareTo(Utils.ELEMENT_METHOD) == 0)
{
- String methodName =
converter.prepareMethodName(Utils.getNamedAttribute(child,
Utils.ATTRIBUTE_NAME));
+ String methodName =
converter.prepareMethodName(Utils.getNamedAttribute(child,
+ Utils.ATTRIBUTE_NAME));
AmqpMethod thisMethod =
methodMap.get(methodName);
if (thisMethod == null)
{
thisMethod = new AmqpMethod(methodName,
converter);
methodMap.put(methodName, thisMethod);
}
- thisMethod.addFromNode(child, methodCntr++,
version);
+ if (!thisMethod.addFromNode(child, fieldCntr++,
version))
+ {
+ String className =
converter.prepareClassName(Utils.getNamedAttribute(classNode,
+ Utils.ATTRIBUTE_NAME));
+ System.out.println("INFO: Generation
supression tag found for method " +
+ className + "." +
methodName + " - removing.");
+ thisMethod.removeVersion(version);
+ methodMap.remove(methodName);
+ }
+ }
+ else if
(child.getNodeName().compareTo(Utils.ELEMENT_CODEGEN) == 0)
+ {
+ String value = Utils.getNamedAttribute(child,
Utils.ATTRIBUTE_VALUE);
+ if (value.compareTo("no-gen") == 0)
+ return false;
}
}
+ return true;
+ }
+
+ public void removeVersion(AmqpVersion version)
+ {
+ indexMap.removeVersion(version);
+ fieldMap.removeVersion(version);
+ methodMap.removeVersion(version);
+ versionSet.remove(version);
}
public void print(PrintStream out, int marginSize, int tabSize)
Modified:
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpConstantSet.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpConstantSet.java?view=diff&rev=492280&r1=492279&r2=492280
==============================================================================
---
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpConstantSet.java
(original)
+++
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpConstantSet.java
Wed Jan 3 12:15:19 2007
@@ -48,7 +48,7 @@
/* (non-Javadoc)
* @see org.apache.qpid.gentools.NodeAware#addFromNode(org.w3c.dom.Node,
int, org.apache.qpid.gentools.AmqpVersion)
*/
- public void addFromNode(Node node, int ordinal, AmqpVersion version)
+ public boolean addFromNode(Node node, int ordinal, AmqpVersion version)
throws AmqpParseException, AmqpTypeMappingException
{
NodeList nodeList = node.getChildNodes();
@@ -95,6 +95,7 @@
}
}
}
+ return true;
}
/* (non-Javadoc)
Modified:
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpDomainMap.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpDomainMap.java?view=diff&rev=492280&r1=492279&r2=492280
==============================================================================
---
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpDomainMap.java
(original)
+++
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpDomainMap.java
Wed Jan 3 12:15:19 2007
@@ -37,7 +37,7 @@
this.converter.setDomainMap(this);
}
- public void addFromNode(Node n, int o, AmqpVersion v)
+ public boolean addFromNode(Node n, int o, AmqpVersion v)
throws AmqpParseException, AmqpTypeMappingException
{
NodeList nl = n.getChildNodes();
@@ -81,7 +81,8 @@
{
addFromNode(c, 0, v);
}
- }
+ }
+ return true;
}
public String getDomainType(String domainName, AmqpVersion version)
Modified:
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpDomainVersionMap.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpDomainVersionMap.java?view=diff&rev=492280&r1=492279&r2=492280
==============================================================================
---
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpDomainVersionMap.java
(original)
+++
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpDomainVersionMap.java
Wed Jan 3 12:15:19 2007
@@ -20,6 +20,7 @@
*/
package org.apache.qpid.gentools;
+import java.util.ArrayList;
import java.util.TreeMap;
@SuppressWarnings("serial")
@@ -30,5 +31,28 @@
if (size() != 1)
return false;
return get(firstKey()).equals(globalVersionSet);
+ }
+
+ public boolean removeVersion(AmqpVersion version)
+ {
+ Boolean res = false;
+ ArrayList<String> removeList = new ArrayList<String>();
+ for (String domainName : keySet())
+ {
+ AmqpVersionSet versionSet = get(domainName);
+ if (versionSet.contains(version))
+ {
+ versionSet.remove(version);
+ if (versionSet.isEmpty())
+ removeList.add(domainName);
+ res = true;
+ }
+ }
+ // Get rid of domains no longer in use
+ for (String domainName : removeList)
+ {
+ remove(domainName);
+ }
+ return res;
}
}
Modified:
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpField.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpField.java?view=diff&rev=492280&r1=492279&r2=492280
==============================================================================
---
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpField.java
(original)
+++
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpField.java
Wed Jan 3 12:15:19 2007
@@ -24,6 +24,7 @@
import java.util.ArrayList;
import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
public class AmqpField implements Printable, NodeAware, VersionConsistencyCheck
{
@@ -42,7 +43,7 @@
ordinalMap = new AmqpOrdinalVersionMap();
}
- public void addFromNode(Node fieldNode, int ordinal, AmqpVersion
version)
+ public boolean addFromNode(Node fieldNode, int ordinal, AmqpVersion
version)
throws AmqpParseException, AmqpTypeMappingException
{
versionSet.add(version);
@@ -70,6 +71,25 @@
ordinalMap.put(ordinal, thisVersionList);
}
thisVersionList.add(version);
+ NodeList nList = fieldNode.getChildNodes();
+ for (int i=0; i<nList.getLength(); i++)
+ {
+ Node child = nList.item(i);
+ if
(child.getNodeName().compareTo(Utils.ELEMENT_CODEGEN) == 0)
+ {
+ String value = Utils.getNamedAttribute(child,
Utils.ATTRIBUTE_VALUE);
+ if (value.compareTo("no-gen") == 0)
+ return false;
+ }
+ }
+ return true;
+ }
+
+ public void removeVersion(AmqpVersion version)
+ {
+ domainMap.removeVersion(version);
+ ordinalMap.removeVersion(version);
+ versionSet.remove(version);
}
public boolean isCodeTypeConsistent(LanguageConverter converter)
Modified:
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpFieldMap.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpFieldMap.java?view=diff&rev=492280&r1=492279&r2=492280
==============================================================================
---
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpFieldMap.java
(original)
+++
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpFieldMap.java
Wed Jan 3 12:15:19 2007
@@ -29,6 +29,17 @@
@SuppressWarnings("serial")
public class AmqpFieldMap extends TreeMap<String, AmqpField> implements
VersionConsistencyCheck
{
+ public void removeVersion(AmqpVersion version)
+ {
+ String[] fieldNameArray = new String[size()];
+ keySet().toArray(fieldNameArray);
+ for (String fieldName : fieldNameArray)
+ {
+ get(fieldName).removeVersion(version);
+ remove(fieldName);
+ }
+ }
+
public AmqpFieldMap getFieldMapForOrdinal(int ordinal)
{
AmqpFieldMap newMap = new AmqpFieldMap();
Modified:
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpFlagMap.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpFlagMap.java?view=diff&rev=492280&r1=492279&r2=492280
==============================================================================
---
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpFlagMap.java
(original)
+++
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpFlagMap.java
Wed Jan 3 12:15:19 2007
@@ -20,6 +20,7 @@
*/
package org.apache.qpid.gentools;
+import java.util.ArrayList;
import java.util.TreeMap;
@SuppressWarnings("serial")
@@ -43,5 +44,28 @@
if (size() != 1)
return false;
return get(firstKey()).equals(globalVersionSet);
+ }
+
+ public boolean removeVersion(AmqpVersion version)
+ {
+ Boolean res = false;
+ ArrayList<Boolean> removeList = new ArrayList<Boolean>();
+ for (Boolean flag : keySet())
+ {
+ AmqpVersionSet versionSet = get(flag);
+ if (versionSet.contains(version))
+ {
+ versionSet.remove(version);
+ if (versionSet.isEmpty())
+ removeList.add(flag);
+ res = true;
+ }
+ }
+ // Get rid of flags no longer in use
+ for (Boolean flag : removeList)
+ {
+ remove(flag);
+ }
+ return res;
}
}
Modified:
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpMethod.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpMethod.java?view=diff&rev=492280&r1=492279&r2=492280
==============================================================================
---
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpMethod.java
(original)
+++
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpMethod.java
Wed Jan 3 12:15:19 2007
@@ -46,21 +46,21 @@
serverMethodFlagMap = new AmqpFlagMap();
}
- public void addFromNode(Node methodNode, int ordinal, AmqpVersion
version)
+ public boolean addFromNode(Node methodNode, int ordinal, AmqpVersion
version)
throws AmqpParseException, AmqpTypeMappingException
{
+ versionSet.add(version);
boolean serverChassisFlag = false;
boolean clientChassisFlag = false;
- versionSet.add(version);
int index = Utils.getNamedIntegerAttribute(methodNode, "index");
- AmqpVersionSet versionSet = indexMap.get(index);
- if (versionSet != null)
- versionSet.add(version);
+ AmqpVersionSet indexVersionSet = indexMap.get(index);
+ if (indexVersionSet != null)
+ indexVersionSet.add(version);
else
{
- versionSet = new AmqpVersionSet();
- versionSet.add(version);
- indexMap.put(index, versionSet);
+ indexVersionSet = new AmqpVersionSet();
+ indexVersionSet.add(version);
+ indexMap.put(index, indexVersionSet);
}
NodeList nList = methodNode.getChildNodes();
int fieldCntr = 0;
@@ -69,16 +69,27 @@
Node child = nList.item(i);
if (child.getNodeName().compareTo(Utils.ELEMENT_FIELD)
== 0)
{
- String fieldName =
converter.prepareDomainName(Utils.getNamedAttribute(child,
Utils.ATTRIBUTE_NAME));
+ String fieldName =
converter.prepareDomainName(Utils.getNamedAttribute(child,
+ Utils.ATTRIBUTE_NAME));
AmqpField thisField = fieldMap.get(fieldName);
if (thisField == null)
{
thisField = new AmqpField(fieldName,
converter);
fieldMap.put(fieldName, thisField);
}
- thisField.addFromNode(child, fieldCntr++,
version);
+ if (!thisField.addFromNode(child, fieldCntr++,
version))
+ {
+ String className =
converter.prepareClassName(Utils.getNamedAttribute(methodNode.getParentNode(),
+ Utils.ATTRIBUTE_NAME));
+ String methodName =
converter.prepareMethodName(Utils.getNamedAttribute(methodNode,
+ Utils.ATTRIBUTE_NAME));
+ System.out.println("INFO: Generation
supression tag found for field " +
+ className + "." +
methodName + "." + fieldName + " - removing.");
+ thisField.removeVersion(version);
+ fieldMap.remove(fieldName);
+ }
}
- if
(child.getNodeName().compareTo(Utils.ELEMENT_CHASSIS) == 0)
+ else if
(child.getNodeName().compareTo(Utils.ELEMENT_CHASSIS) == 0)
{
String chassisName =
Utils.getNamedAttribute(child, Utils.ATTRIBUTE_NAME);
if (chassisName.compareTo("server") == 0)
@@ -86,8 +97,24 @@
else if (chassisName.compareTo("client") == 0)
clientChassisFlag = true;
}
+ else if
(child.getNodeName().compareTo(Utils.ELEMENT_CODEGEN) == 0)
+ {
+ String value = Utils.getNamedAttribute(child,
Utils.ATTRIBUTE_VALUE);
+ if (value.compareTo("no-gen") == 0)
+ return false;
+ }
}
processChassisFlags(serverChassisFlag, clientChassisFlag,
version);
+ return true;
+ }
+
+ public void removeVersion(AmqpVersion version)
+ {
+ clientMethodFlagMap.removeVersion(version);
+ serverMethodFlagMap.removeVersion(version);
+ indexMap.removeVersion(version);
+ fieldMap.removeVersion(version);
+ versionSet.remove(version);
}
public void print(PrintStream out, int marginSize, int tabSize)
@@ -96,7 +123,8 @@
String tab = Utils.createSpaces(tabSize);
out.println(margin + "[M] " + name + " {" +
(serverMethodFlagMap.isSet() ? "S " +
serverMethodFlagMap + (clientMethodFlagMap.isSet() ? ",
" : "") : "") +
- (clientMethodFlagMap.isSet() ? "C " +
clientMethodFlagMap : "") + "}" + ": " + versionSet);
+ (clientMethodFlagMap.isSet() ? "C " +
clientMethodFlagMap : "") + "}" + ": " +
+ versionSet);
for (Integer thisIndex : indexMap.keySet())
{
Modified:
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpMethodMap.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpMethodMap.java?view=diff&rev=492280&r1=492279&r2=492280
==============================================================================
---
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpMethodMap.java
(original)
+++
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpMethodMap.java
Wed Jan 3 12:15:19 2007
@@ -25,5 +25,12 @@
@SuppressWarnings("serial")
public class AmqpMethodMap extends TreeMap<String, AmqpMethod>
{
+ public void removeVersion(AmqpVersion version)
+ {
+ for (String methodName : keySet())
+ {
+ get(methodName).removeVersion(version);
+ }
+ }
}
Modified:
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpModel.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpModel.java?view=diff&rev=492280&r1=492279&r2=492280
==============================================================================
---
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpModel.java
(original)
+++
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpModel.java
Wed Jan 3 12:15:19 2007
@@ -37,7 +37,7 @@
classMap = new AmqpClassMap();
}
- public void addFromNode(Node n, int o, AmqpVersion v)
+ public boolean addFromNode(Node n, int o, AmqpVersion v)
throws AmqpParseException, AmqpTypeMappingException
{
NodeList nList = n.getChildNodes();
@@ -54,9 +54,15 @@
thisClass = new AmqpClass(className,
converter);
classMap.put(className, thisClass);
}
- thisClass.addFromNode(c, eCntr++, v);
+ if (!thisClass.addFromNode(c, eCntr++, v))
+ {
+ System.out.println("INFO: Generation
supression tag found for class " + className + " - removing.");
+ thisClass.removeVersion(v);
+ classMap.remove(className);
+ }
}
- }
+ }
+ return true;
}
public void print(PrintStream out, int marginSize, int tabSize)
Modified:
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpOrdinalVersionMap.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpOrdinalVersionMap.java?view=diff&rev=492280&r1=492279&r2=492280
==============================================================================
---
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpOrdinalVersionMap.java
(original)
+++
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpOrdinalVersionMap.java
Wed Jan 3 12:15:19 2007
@@ -20,6 +20,7 @@
*/
package org.apache.qpid.gentools;
+import java.util.ArrayList;
import java.util.TreeMap;
@SuppressWarnings("serial")
@@ -43,4 +44,29 @@
}
throw new AmqpTypeMappingException("Unable to locate version " +
version + " in ordianl version map.");
}
+
+ public boolean removeVersion(AmqpVersion version)
+ {
+ Boolean res = false;
+ ArrayList<Integer> removeList = new ArrayList<Integer>();
+ for (Integer ordinal : keySet())
+ {
+ AmqpVersionSet versionSet = get(ordinal);
+ if (versionSet.contains(version))
+ {
+ versionSet.remove(version);
+ if (versionSet.isEmpty())
+ {
+ removeList.add(ordinal);
+ }
+ res = true;
+ }
+ }
+ // Get rid of ordinals no longer in use
+ for (Integer ordinal : removeList)
+ {
+ remove(ordinal);
+ }
+ return res;
+ }
}
Modified:
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpVersion.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpVersion.java?view=diff&rev=492280&r1=492279&r2=492280
==============================================================================
---
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpVersion.java
(original)
+++
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpVersion.java
Wed Jan 3 12:15:19 2007
@@ -30,6 +30,12 @@
this.major = major;
this.minor = minor;
}
+
+ public AmqpVersion(AmqpVersion version)
+ {
+ this.major = version.major;
+ this.minor = version.minor;
+ }
public int getMajor()
{
Modified:
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpVersionSet.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpVersionSet.java?view=diff&rev=492280&r1=492279&r2=492280
==============================================================================
---
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpVersionSet.java
(original)
+++
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/AmqpVersionSet.java
Wed Jan 3 12:15:19 2007
@@ -30,11 +30,23 @@
{
public AmqpVersionSet()
{
+ super();
}
public AmqpVersionSet(AmqpVersion version)
{
+ super();
add(version);
+ }
+
+ public AmqpVersion find(AmqpVersion version)
+ {
+ for (AmqpVersion v : this)
+ {
+ if (v.compareTo(version) == 0)
+ return v;
+ }
+ return null;
}
public void print(PrintStream out, int marginSize, int tabSize)
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=492280&r1=492279&r2=492280
==============================================================================
---
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
Wed Jan 3 12:15:19 2007
@@ -28,7 +28,6 @@
import java.io.LineNumberReader;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
-import java.util.Iterator;
public abstract class Generator implements LanguageConverter
{
@@ -185,38 +184,29 @@
}
// Cycle through classes
- Iterator<String> citr = model.classMap.keySet().iterator();
- while (citr.hasNext())
+ for (String className : model.classMap.keySet())
{
- String className = citr.next();
AmqpClass thisClass = model.classMap.get(className);
-
// Use all class-level templates
for (String[] ct : classTemplateList)
{
processTemplateB(ct, thisClass);
}
-
+
// Cycle through all methods
- Iterator<String> mitr =
thisClass.methodMap.keySet().iterator();
- while (mitr.hasNext())
+ for (String methodName : thisClass.methodMap.keySet())
{
- String methodName = mitr.next();
AmqpMethod method =
thisClass.methodMap.get(methodName);
-
// Use all method-level templates
for (String[] mt : methodTemplateList)
{
processTemplateC(mt, thisClass, method);
}
-
+
// Cycle through all fields
- Iterator<String> fitr =
method.fieldMap.keySet().iterator();
- while (fitr.hasNext())
+ for (String fieldName :
method.fieldMap.keySet())
{
- String fieldName = fitr.next();
AmqpField field =
method.fieldMap.get(fieldName);
-
// Use all field-level templates
for (String[] ft : fieldTemplateList)
{
Modified:
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/JavaGenerator.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/JavaGenerator.java?view=diff&rev=492280&r1=492279&r2=492280
==============================================================================
---
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/JavaGenerator.java
(original)
+++
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/JavaGenerator.java
Wed Jan 3 12:15:19 2007
@@ -733,14 +733,12 @@
String tab = Utils.createSpaces(tabSize);
StringBuffer sb = new StringBuffer();
- Iterator<String> cItr = model.classMap.keySet().iterator();
- while (cItr.hasNext())
+ for (String className : model.classMap.keySet())
{
- AmqpClass thisClass = model.classMap.get(cItr.next());
- Iterator<String> mItr =
thisClass.methodMap.keySet().iterator();
- while (mItr.hasNext())
+ AmqpClass thisClass = model.classMap.get(className);
+ for (String methodName : thisClass.methodMap.keySet())
{
- AmqpMethod method =
thisClass.methodMap.get(mItr.next());
+ AmqpMethod method =
thisClass.methodMap.get(methodName);
for (AmqpVersion version : globalVersionSet)
{
// Find class and method index for this
version (if it exists)
@@ -750,10 +748,10 @@
int methodIndex =
findIndex(method.indexMap, version);
sb.append(indent +
"classIDMethodIDVersionBodyMap.put(" + cr);
sb.append(indent + tab +
"createMapKey((short)" + classIndex +
- ", (short)" +
methodIndex + ", (byte)" + version.getMajor() +
- ", (byte)" +
version.getMinor() + "), " + cr);
+ ", (short)" +
methodIndex + ", (byte)" + version.getMajor() +
+ ", (byte)" +
version.getMinor() + "), " + cr);
sb.append(indent + tab +
Utils.firstUpper(thisClass.name) +
-
Utils.firstUpper(method.name) + "Body.class);" + cr);
+
Utils.firstUpper(method.name) + "Body.class);" + cr);
}
catch (Exception e) {} // Ignore
}
Modified:
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/NodeAware.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/NodeAware.java?view=diff&rev=492280&r1=492279&r2=492280
==============================================================================
---
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/NodeAware.java
(original)
+++
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/NodeAware.java
Wed Jan 3 12:15:19 2007
@@ -39,7 +39,8 @@
* @param v Verion of the DOM from which the node comes.
* @throws AmqpParseException
* @throws AmqpTypeMappingException
+ * @returns true if a node was added, false if not
*/
- public void addFromNode(Node n, int o, AmqpVersion v)
+ public boolean addFromNode(Node n, int o, AmqpVersion v)
throws AmqpParseException, AmqpTypeMappingException;
}
Modified:
incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/Utils.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/Utils.java?view=diff&rev=492280&r1=492279&r2=492280
==============================================================================
--- incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/Utils.java
(original)
+++ incubator/qpid/trunk/qpid/gentools/src/org/apache/qpid/gentools/Utils.java
Wed Jan 3 12:15:19 2007
@@ -46,6 +46,7 @@
public final static String ELEMENT_AMQP = "amqp";
public final static String ELEMENT_CHASSIS = "chassis";
public final static String ELEMENT_CLASS = "class";
+ public final static String ELEMENT_CODEGEN = "codegen";
public final static String ELEMENT_CONSTANT = "constant";
public final static String ELEMENT_DOMAIN = "domain";
public final static String ELEMENT_METHOD = "method";