add equals/hashcode to the Declare and Discharge described types to allow equality check with decoded transfer value using the EncodedAmqpValueMatcher
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/fe8768b3 Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/fe8768b3 Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/fe8768b3 Branch: refs/heads/master Commit: fe8768b3e7c224133ba84eaf0dd263c184707c2b Parents: 9d40af8 Author: Robert Gemmell <[email protected]> Authored: Mon Nov 17 11:47:30 2014 +0000 Committer: Robert Gemmell <[email protected]> Committed: Mon Nov 17 11:47:30 2014 +0000 ---------------------------------------------------------------------- .../test/testpeer/describedtypes/Declare.java | 38 ++++++++++++++++++ .../test/testpeer/describedtypes/Discharge.java | 38 ++++++++++++++++++ .../describedtypes/generate-described-types.xsl | 41 +++++++++++++++++++- 3 files changed, 116 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/fe8768b3/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Declare.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Declare.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Declare.java index b4e98b8..e9c16c8 100644 --- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Declare.java +++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Declare.java @@ -21,6 +21,7 @@ package org.apache.qpid.jms.test.testpeer.describedtypes; import org.apache.qpid.jms.test.testpeer.ListDescribedType; +import org.apache.qpid.proton.amqp.DescribedType; import org.apache.qpid.proton.amqp.Symbol; import org.apache.qpid.proton.amqp.UnsignedLong; @@ -57,5 +58,42 @@ public class Declare extends ListDescribedType return this; } + @Override + public boolean equals(Object obj) + { + if(obj == this) + { + return true; + } + + if(!(obj instanceof DescribedType)) + { + return false; + } + + DescribedType d = (DescribedType) obj; + if(!(DESCRIPTOR_CODE.equals(d.getDescriptor()) || DESCRIPTOR_SYMBOL.equals(d.getDescriptor()))) + { + return false; + } + + Object described = getDescribed(); + Object described2 = d.getDescribed(); + if(described == null) + { + return described2 == null; + } + else { + return described.equals(described2); + } + } + + @Override + public int hashCode() + { + //This is a hack, but we aren't going to hash lots of these test objects. + return 1; + } + } http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/fe8768b3/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Discharge.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Discharge.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Discharge.java index e096426..6813684 100644 --- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Discharge.java +++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/Discharge.java @@ -21,6 +21,7 @@ package org.apache.qpid.jms.test.testpeer.describedtypes; import org.apache.qpid.jms.test.testpeer.ListDescribedType; +import org.apache.qpid.proton.amqp.DescribedType; import org.apache.qpid.proton.amqp.Symbol; import org.apache.qpid.proton.amqp.UnsignedLong; @@ -64,5 +65,42 @@ public class Discharge extends ListDescribedType return this; } + @Override + public boolean equals(Object obj) + { + if(obj == this) + { + return true; + } + + if(!(obj instanceof DescribedType)) + { + return false; + } + + DescribedType d = (DescribedType) obj; + if(!(DESCRIPTOR_CODE.equals(d.getDescriptor()) || DESCRIPTOR_SYMBOL.equals(d.getDescriptor()))) + { + return false; + } + + Object described = getDescribed(); + Object described2 = d.getDescribed(); + if(described == null) + { + return described2 == null; + } + else { + return described.equals(described2); + } + } + + @Override + public int hashCode() + { + //This is a hack, but we aren't going to hash lots of these test objects. + return 1; + } + } http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/fe8768b3/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/generate-described-types.xsl ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/generate-described-types.xsl b/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/generate-described-types.xsl index 21b438f..502e1d0 100644 --- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/generate-described-types.xsl +++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/test/testpeer/describedtypes/generate-described-types.xsl @@ -61,7 +61,8 @@ <xsl:value-of select="$license"/> package org.apache.qpid.jms.test.testpeer.describedtypes; -import org.apache.qpid.jms.test.testpeer.ListDescribedType; +import org.apache.qpid.jms.test.testpeer.ListDescribedType;<xsl:if test="@name = 'declare' or @name = 'discharge'"> +import org.apache.qpid.proton.amqp.DescribedType;</xsl:if> import org.apache.qpid.proton.amqp.Symbol; import org.apache.qpid.proton.amqp.UnsignedLong; @@ -98,6 +99,44 @@ public class <xsl:value-of select="$classname"/> extends ListDescribedType return this; } </xsl:for-each> +<xsl:if test="@name = 'declare' or @name = 'discharge'"> + @Override + public boolean equals(Object obj) + { + if(obj == this) + { + return true; + } + + if(!(obj instanceof DescribedType)) + { + return false; + } + + DescribedType d = (DescribedType) obj; + if(!(DESCRIPTOR_CODE.equals(d.getDescriptor()) || DESCRIPTOR_SYMBOL.equals(d.getDescriptor()))) + { + return false; + } + + Object described = getDescribed(); + Object described2 = d.getDescribed(); + if(described == null) + { + return described2 == null; + } + else { + return described.equals(described2); + } + } + + @Override + public int hashCode() + { + //This is a hack, but we aren't going to hash lots of these test objects. + return 1; + } +</xsl:if> } </exsl:document> --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
