Author: cmacnaug
Date: Sat Feb 13 03:20:16 2010
New Revision: 909704
URL: http://svn.apache.org/viewvc?rev=909704&view=rev
Log:
Modified Map and List decoding to perform additional validation. Changes in support of array encodings.
Modified:
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/AmqpMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpAttachMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpBarMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpBinaryMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpBooleanMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpCloseMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpCompletedMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpConnectionErrorMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpDetachMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpDispositionMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpDrainMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpEnlistMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpFilterMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpFlowMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpFooterMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpFragmentMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpHeaderMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpLinkErrorMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpLinkMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpListMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpMapMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpNoopMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpOpenMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpPropertiesMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpRejectedMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpReleasedMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpRelinkMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpSaslChallengeMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpSaslInitMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpSaslMechanismsMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpSaslOutcomeMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpSaslResponseMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpSessionErrorMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpSourceMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpStringMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpSymbolMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpTargetMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpTransferMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpTxnMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpUnlinkMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpXidMarshaller.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/Encoder.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpAttach.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpBar.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpClose.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpCompleted.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpConnectionError.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpDetach.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpDisposition.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpDrain.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpEnlist.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpFilter.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpFilterSet.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpFlow.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpFooter.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpFragment.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpHeader.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpLink.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpLinkError.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpList.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpMap.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpMessageAttributes.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpNoop.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpOpen.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpOptions.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpProperties.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpRejected.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpReleased.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpRelink.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpSaslChallenge.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpSaslInit.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpSaslMechanisms.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpSaslOutcome.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpSaslResponse.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpSessionError.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpSource.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpTarget.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpTransfer.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpTxn.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpUnlink.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/AmqpXid.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/IAmqpList.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/types/TypeFactory.java
activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/test/java/org/apache/activemq/amqp/protocol/AmqpProtocolTest.java
Modified: activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/AmqpMarshaller.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/AmqpMarshaller.java?rev=909704&r1=909703&r2=909704&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/AmqpMarshaller.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/AmqpMarshaller.java Sat Feb 13 03:20:16 2010
@@ -91,11 +91,11 @@
public AmqpType<?, ?> unmarshalType(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpSessionError data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpSessionError data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpSessionError(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpSessionError(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpSessionError(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpSessionError(DataInput in) throws IOException, AmqpEncodingError;
public Encoded<Integer> encode(AmqpChar data) throws AmqpEncodingError;
@@ -103,17 +103,17 @@
public Encoded<Integer> unmarshalAmqpChar(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpUnlink data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpUnlink data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpUnlink(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpUnlink(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpUnlink(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpUnlink(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpFlow data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpFlow data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpFlow(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpFlow(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpFlow(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpFlow(DataInput in) throws IOException, AmqpEncodingError;
public Encoded<Long> encode(AmqpLong data) throws AmqpEncodingError;
@@ -127,23 +127,23 @@
public Encoded<Float> unmarshalAmqpFloat(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpRelink data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpRelink data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpRelink(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpRelink(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpRelink(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpRelink(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpClose data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpClose data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpClose(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpClose(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpClose(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpClose(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpOpen data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpOpen data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpOpen(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpOpen(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpOpen(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpOpen(DataInput in) throws IOException, AmqpEncodingError;
public Encoded<Byte> encode(AmqpByte data) throws AmqpEncodingError;
@@ -157,11 +157,11 @@
public Encoded<IAmqpMap<AmqpType<?, ?>, AmqpType<?, ?>>> unmarshalAmqpRejected(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpSaslOutcome data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpSaslOutcome data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpSaslOutcome(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpSaslOutcome(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpSaslOutcome(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpSaslOutcome(DataInput in) throws IOException, AmqpEncodingError;
public Encoded<Boolean> encode(AmqpBoolean data) throws AmqpEncodingError;
@@ -175,17 +175,17 @@
public Encoded<BigInteger> unmarshalAmqpUlong(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpTransfer data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpTransfer data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpTransfer(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpTransfer(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpTransfer(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpTransfer(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpDetach data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpDetach data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpDetach(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpDetach(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpDetach(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpDetach(DataInput in) throws IOException, AmqpEncodingError;
public Encoded<String> encode(AmqpSymbol data) throws AmqpEncodingError;
@@ -193,11 +193,11 @@
public Encoded<String> unmarshalAmqpSymbol(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpSaslInit data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpSaslInit data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpSaslInit(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpSaslInit(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpSaslInit(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpSaslInit(DataInput in) throws IOException, AmqpEncodingError;
public Encoded<Integer> encode(AmqpInt data) throws AmqpEncodingError;
@@ -205,17 +205,17 @@
public Encoded<Integer> unmarshalAmqpInt(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpEnlist data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpEnlist data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpEnlist(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpEnlist(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpEnlist(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpEnlist(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpProperties data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpProperties data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpProperties(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpProperties(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpProperties(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpProperties(DataInput in) throws IOException, AmqpEncodingError;
public Encoded<Double> encode(AmqpDouble data) throws AmqpEncodingError;
@@ -223,23 +223,23 @@
public Encoded<Double> unmarshalAmqpDouble(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpDrain data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpDrain data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpDrain(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpDrain(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpDrain(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpDrain(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpHeader data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpHeader data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpHeader(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpHeader(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpHeader(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpHeader(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpSaslMechanisms data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpSaslMechanisms data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpSaslMechanisms(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpSaslMechanisms(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpSaslMechanisms(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpSaslMechanisms(DataInput in) throws IOException, AmqpEncodingError;
public Encoded<UUID> encode(AmqpUuid data) throws AmqpEncodingError;
@@ -247,17 +247,17 @@
public Encoded<UUID> unmarshalAmqpUuid(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpBar data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpBar data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpBar(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpBar(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpBar(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpBar(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpFilter data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpFilter data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpFilter(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpFilter(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpFilter(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpFilter(DataInput in) throws IOException, AmqpEncodingError;
public Encoded<Buffer> encode(AmqpBinary data) throws AmqpEncodingError;
@@ -265,17 +265,17 @@
public Encoded<Buffer> unmarshalAmqpBinary(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpNoop data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpNoop data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpNoop(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpNoop(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpNoop(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpNoop(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpLink data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpLink data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpLink(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpLink(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpLink(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpLink(DataInput in) throws IOException, AmqpEncodingError;
public Encoded<Date> encode(AmqpTimestamp data) throws AmqpEncodingError;
@@ -295,11 +295,11 @@
public Encoded<IAmqpMap<AmqpType<?, ?>, AmqpType<?, ?>>> unmarshalAmqpReleased(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpTxn data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpTxn data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpTxn(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpTxn(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpTxn(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpTxn(DataInput in) throws IOException, AmqpEncodingError;
public Encoded<IAmqpMap<AmqpType<?, ?>, AmqpType<?, ?>>> encode(AmqpMap data) throws AmqpEncodingError;
@@ -307,35 +307,35 @@
public Encoded<IAmqpMap<AmqpType<?, ?>, AmqpType<?, ?>>> unmarshalAmqpMap(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpLinkError data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpLinkError data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpLinkError(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpLinkError(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpLinkError(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpLinkError(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpConnectionError data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpConnectionError data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpConnectionError(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpConnectionError(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpConnectionError(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpConnectionError(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpSaslResponse data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpSaslResponse data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpSaslResponse(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpSaslResponse(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpSaslResponse(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpSaslResponse(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpFragment data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpFragment data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpFragment(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpFragment(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpFragment(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpFragment(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpDisposition data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpDisposition data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpDisposition(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpDisposition(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpDisposition(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpDisposition(DataInput in) throws IOException, AmqpEncodingError;
public Encoded<Object> encode(AmqpNull data) throws AmqpEncodingError;
@@ -349,17 +349,17 @@
public Encoded<IAmqpMap<AmqpType<?, ?>, AmqpType<?, ?>>> unmarshalAmqpCompleted(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpXid data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpXid data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpXid(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpXid(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpXid(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpXid(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpList data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpList data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpList(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpList(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpList(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpList(DataInput in) throws IOException, AmqpEncodingError;
public Encoded<Integer> encode(AmqpUshort data) throws AmqpEncodingError;
@@ -367,11 +367,11 @@
public Encoded<Integer> unmarshalAmqpUshort(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpFooter data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpFooter data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpFooter(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpFooter(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpFooter(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpFooter(DataInput in) throws IOException, AmqpEncodingError;
public Encoded<IAmqpMap<AmqpType<?, ?>, AmqpType<?, ?>>> encode(AmqpSource data) throws AmqpEncodingError;
@@ -379,17 +379,17 @@
public Encoded<IAmqpMap<AmqpType<?, ?>, AmqpType<?, ?>>> unmarshalAmqpSource(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpSaslChallenge data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpSaslChallenge data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpSaslChallenge(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpSaslChallenge(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpSaslChallenge(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpSaslChallenge(DataInput in) throws IOException, AmqpEncodingError;
- public Encoded<IAmqpList> encode(AmqpAttach data) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpAttach data) throws AmqpEncodingError;
- public Encoded<IAmqpList> decodeAmqpAttach(Buffer source, int offset) throws AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> decodeAmqpAttach(Buffer source, int offset) throws AmqpEncodingError;
- public Encoded<IAmqpList> unmarshalAmqpAttach(DataInput in) throws IOException, AmqpEncodingError;
+ public Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalAmqpAttach(DataInput in) throws IOException, AmqpEncodingError;
public Encoded<String> encode(AmqpString data) throws AmqpEncodingError;
Modified: activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpAttachMarshaller.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpAttachMarshaller.java?rev=909704&r1=909703&r2=909704&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpAttachMarshaller.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpAttachMarshaller.java Sat Feb 13 03:20:16 2010
@@ -39,7 +39,7 @@
public class AmqpAttachMarshaller implements DescribedTypeMarshaller<AmqpAttach>{
static final AmqpAttachMarshaller SINGLETON = new AmqpAttachMarshaller();
- private static final Encoded<IAmqpList> NULL_ENCODED = new Encoder.NullEncoded<IAmqpList>();
+ private static final Encoded<IAmqpList<AmqpType<?, ?>>> NULL_ENCODED = new Encoder.NullEncoded<IAmqpList<AmqpType<?, ?>>>();
public static final String SYMBOLIC_ID = "amqp:attach:list";
//Format code: 0x00000001:0x00000202:
@@ -53,67 +53,114 @@
(byte) 0x00, (byte) 0x00, (byte) 0x02, (byte) 0x02 // DESCRIPTOR ID CODE
}), 0);
- private static final ListDecoder DECODER = new ListDecoder() {
- public final AmqpType<?, ?> unmarshalType(int pos, DataInput in) throws IOException {
- switch(pos) {
- case 0: {
- return AmqpOptions.AmqpOptionsBuffer.create(AmqpMapMarshaller.createEncoded(in));
+ private static final ListDecoder<AmqpType<?, ?>> DECODER = new ListDecoder<AmqpType<?, ?>>() {
+ public final IAmqpList<AmqpType<?, ?>> unmarshalType(int dataCount, int dataSize, DataInput in) throws AmqpEncodingError, IOException {
+ if (dataCount > 7) {
+ throw new AmqpEncodingError("Too many fields for " + SYMBOLIC_ID + ": " + dataCount);
}
- case 1: {
- return AmqpSessionName.AmqpSessionNameBuffer.create(AmqpBinaryMarshaller.createEncoded(in));
+ IAmqpList<AmqpType<?, ?>> rc = new IAmqpList.ArrayBackedList<AmqpType<?, ?>>(new AmqpType<?, ?>[7]);
+ //options:
+ if(dataCount > 0) {
+ rc.set(0, AmqpOptions.AmqpOptionsBuffer.create(AmqpMapMarshaller.createEncoded(in)));
+ dataCount--;
}
- case 2: {
- return AmqpBoolean.AmqpBooleanBuffer.create(AmqpBooleanMarshaller.createEncoded(in));
+
+ //name:
+ if(dataCount > 0) {
+ rc.set(1, AmqpSessionName.AmqpSessionNameBuffer.create(AmqpBinaryMarshaller.createEncoded(in)));
+ dataCount--;
}
- case 3: {
- return AmqpSequenceNo.AmqpSequenceNoBuffer.create(AmqpUintMarshaller.createEncoded(in));
+ else {
+ throw new AmqpEncodingError("Missing required field for " + SYMBOLIC_ID + ": name");
}
- case 4: {
- return AmqpUint.AmqpUintBuffer.create(AmqpUintMarshaller.createEncoded(in));
+
+ //opening:
+ if(dataCount > 0) {
+ rc.set(2, AmqpBoolean.AmqpBooleanBuffer.create(AmqpBooleanMarshaller.createEncoded(in)));
+ dataCount--;
}
- case 5: {
- return AmqpUbyte.AmqpUbyteBuffer.create(AmqpUbyteMarshaller.createEncoded(in));
+
+ //received:
+ if(dataCount > 0) {
+ rc.set(3, AmqpSequenceNo.AmqpSequenceNoBuffer.create(AmqpUintMarshaller.createEncoded(in)));
+ dataCount--;
}
- case 6: {
- return AmqpUbyte.AmqpUbyteBuffer.create(AmqpUbyteMarshaller.createEncoded(in));
+
+ //timeout:
+ if(dataCount > 0) {
+ rc.set(4, AmqpUint.AmqpUintBuffer.create(AmqpUintMarshaller.createEncoded(in)));
+ dataCount--;
}
- default: {
- return AmqpMarshaller.SINGLETON.unmarshalType(in);
+
+ //txn-mode:
+ if(dataCount > 0) {
+ rc.set(5, AmqpUbyte.AmqpUbyteBuffer.create(AmqpUbyteMarshaller.createEncoded(in)));
+ dataCount--;
}
+
+ //txn-support:
+ if(dataCount > 0) {
+ rc.set(6, AmqpUbyte.AmqpUbyteBuffer.create(AmqpUbyteMarshaller.createEncoded(in)));
+ dataCount--;
}
+ return rc;
}
- public final AmqpType<?, ?> decodeType(int pos, EncodedBuffer buffer) throws AmqpEncodingError {
- switch(pos) {
- case 0: {
- return AmqpOptions.AmqpOptionsBuffer.create(AmqpMapMarshaller.createEncoded(buffer));
+ public IAmqpList<AmqpType<?, ?>> decode(EncodedBuffer[] constituents) {
+ if (constituents.length > 7) {
+ throw new AmqpEncodingError("Too many fields for " + SYMBOLIC_ID + ":" + constituents.length);
}
- case 1: {
- return AmqpSessionName.AmqpSessionNameBuffer.create(AmqpBinaryMarshaller.createEncoded(buffer));
+ int dataCount = constituents.length;
+ IAmqpList<AmqpType<?, ?>> rc = new IAmqpList.ArrayBackedList<AmqpType<?, ?>>(new AmqpType<?, ?>[7]);
+ //options:
+ if(dataCount > 0) {
+ rc.set(0, AmqpOptions.AmqpOptionsBuffer.create(AmqpMapMarshaller.createEncoded(constituents[0])));
+ dataCount--;
}
- case 2: {
- return AmqpBoolean.AmqpBooleanBuffer.create(AmqpBooleanMarshaller.createEncoded(buffer));
+
+ //name:
+ if(dataCount > 0) {
+ rc.set(1, AmqpSessionName.AmqpSessionNameBuffer.create(AmqpBinaryMarshaller.createEncoded(constituents[1])));
+ dataCount--;
}
- case 3: {
- return AmqpSequenceNo.AmqpSequenceNoBuffer.create(AmqpUintMarshaller.createEncoded(buffer));
+ else {
+ throw new AmqpEncodingError("Missing required field for " + SYMBOLIC_ID + ": name");
}
- case 4: {
- return AmqpUint.AmqpUintBuffer.create(AmqpUintMarshaller.createEncoded(buffer));
+
+ //opening:
+ if(dataCount > 0) {
+ rc.set(2, AmqpBoolean.AmqpBooleanBuffer.create(AmqpBooleanMarshaller.createEncoded(constituents[2])));
+ dataCount--;
}
- case 5: {
- return AmqpUbyte.AmqpUbyteBuffer.create(AmqpUbyteMarshaller.createEncoded(buffer));
+
+ //received:
+ if(dataCount > 0) {
+ rc.set(3, AmqpSequenceNo.AmqpSequenceNoBuffer.create(AmqpUintMarshaller.createEncoded(constituents[3])));
+ dataCount--;
}
- case 6: {
- return AmqpUbyte.AmqpUbyteBuffer.create(AmqpUbyteMarshaller.createEncoded(buffer));
+
+ //timeout:
+ if(dataCount > 0) {
+ rc.set(4, AmqpUint.AmqpUintBuffer.create(AmqpUintMarshaller.createEncoded(constituents[4])));
+ dataCount--;
}
- default: {
- return AmqpMarshaller.SINGLETON.decodeType(buffer);
+
+ //txn-mode:
+ if(dataCount > 0) {
+ rc.set(5, AmqpUbyte.AmqpUbyteBuffer.create(AmqpUbyteMarshaller.createEncoded(constituents[5])));
+ dataCount--;
}
+
+ //txn-support:
+ if(dataCount > 0) {
+ rc.set(6, AmqpUbyte.AmqpUbyteBuffer.create(AmqpUbyteMarshaller.createEncoded(constituents[6])));
+ dataCount--;
}
+ return rc;
}
};
- public static class AmqpAttachEncoded extends DescribedEncoded<IAmqpList> {
+ public static class AmqpAttachEncoded extends DescribedEncoded<IAmqpList<AmqpType<?, ?>>> {
public AmqpAttachEncoded(DescribedBuffer buffer) {
super(buffer);
@@ -131,11 +178,11 @@
return NUMERIC_ID;
}
- protected final Encoded<IAmqpList> decodeDescribed(EncodedBuffer encoded) throws AmqpEncodingError {
+ protected final Encoded<IAmqpList<AmqpType<?, ?>>> decodeDescribed(EncodedBuffer encoded) throws AmqpEncodingError {
return AmqpListMarshaller.createEncoded(encoded, DECODER);
}
- protected final Encoded<IAmqpList> unmarshalDescribed(DataInput in) throws IOException {
+ protected final Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalDescribed(DataInput in) throws IOException {
return AmqpListMarshaller.createEncoded(in, DECODER);
}
@@ -144,19 +191,19 @@
}
}
- public static final Encoded<IAmqpList> encode(AmqpAttach value) throws AmqpEncodingError {
+ public static final Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpAttach value) throws AmqpEncodingError {
return new AmqpAttachEncoded(value);
}
- static final Encoded<IAmqpList> createEncoded(Buffer source, int offset) throws AmqpEncodingError {
+ static final Encoded<IAmqpList<AmqpType<?, ?>>> createEncoded(Buffer source, int offset) throws AmqpEncodingError {
return createEncoded(FormatCategory.createBuffer(source, offset));
}
- static final Encoded<IAmqpList> createEncoded(DataInput in) throws IOException, AmqpEncodingError {
+ static final Encoded<IAmqpList<AmqpType<?, ?>>> createEncoded(DataInput in) throws IOException, AmqpEncodingError {
return createEncoded(FormatCategory.createBuffer(in.readByte(), in));
}
- static final Encoded<IAmqpList> createEncoded(EncodedBuffer buffer) throws AmqpEncodingError {
+ static final Encoded<IAmqpList<AmqpType<?, ?>>> createEncoded(EncodedBuffer buffer) throws AmqpEncodingError {
byte fc = buffer.getEncodingFormatCode();
if (fc == Encoder.NULL_FORMAT_CODE) {
return NULL_ENCODED;
Modified: activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpBarMarshaller.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpBarMarshaller.java?rev=909704&r1=909703&r2=909704&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpBarMarshaller.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpBarMarshaller.java Sat Feb 13 03:20:16 2010
@@ -36,7 +36,7 @@
public class AmqpBarMarshaller implements DescribedTypeMarshaller<AmqpBar>{
static final AmqpBarMarshaller SINGLETON = new AmqpBarMarshaller();
- private static final Encoded<IAmqpList> NULL_ENCODED = new Encoder.NullEncoded<IAmqpList>();
+ private static final Encoded<IAmqpList<AmqpType<?, ?>>> NULL_ENCODED = new Encoder.NullEncoded<IAmqpList<AmqpType<?, ?>>>();
public static final String SYMBOLIC_ID = "amqp:bar:list";
//Format code: 0x00000001:0x00009901:
@@ -50,43 +50,66 @@
(byte) 0x00, (byte) 0x00, (byte) 0x99, (byte) 0x01 // DESCRIPTOR ID CODE
}), 0);
- private static final ListDecoder DECODER = new ListDecoder() {
- public final AmqpType<?, ?> unmarshalType(int pos, DataInput in) throws IOException {
- switch(pos) {
- case 0: {
- return AmqpOptions.AmqpOptionsBuffer.create(AmqpMapMarshaller.createEncoded(in));
+ private static final ListDecoder<AmqpType<?, ?>> DECODER = new ListDecoder<AmqpType<?, ?>>() {
+ public final IAmqpList<AmqpType<?, ?>> unmarshalType(int dataCount, int dataSize, DataInput in) throws AmqpEncodingError, IOException {
+ if (dataCount > 3) {
+ throw new AmqpEncodingError("Too many fields for " + SYMBOLIC_ID + ": " + dataCount);
}
- case 1: {
- return AmqpHandle.AmqpHandleBuffer.create(AmqpUintMarshaller.createEncoded(in));
+ IAmqpList<AmqpType<?, ?>> rc = new IAmqpList.ArrayBackedList<AmqpType<?, ?>>(new AmqpType<?, ?>[3]);
+ //options:
+ if(dataCount > 0) {
+ rc.set(0, AmqpOptions.AmqpOptionsBuffer.create(AmqpMapMarshaller.createEncoded(in)));
+ dataCount--;
}
- case 2: {
- return AmqpDeliveryTag.AmqpDeliveryTagBuffer.create(AmqpBinaryMarshaller.createEncoded(in));
+
+ //handle:
+ if(dataCount > 0) {
+ rc.set(1, AmqpHandle.AmqpHandleBuffer.create(AmqpUintMarshaller.createEncoded(in)));
+ dataCount--;
}
- default: {
- return AmqpMarshaller.SINGLETON.unmarshalType(in);
+ else {
+ throw new AmqpEncodingError("Missing required field for " + SYMBOLIC_ID + ": handle");
}
+
+ //barrier:
+ if(dataCount > 0) {
+ rc.set(2, AmqpDeliveryTag.AmqpDeliveryTagBuffer.create(AmqpBinaryMarshaller.createEncoded(in)));
+ dataCount--;
}
+ return rc;
}
- public final AmqpType<?, ?> decodeType(int pos, EncodedBuffer buffer) throws AmqpEncodingError {
- switch(pos) {
- case 0: {
- return AmqpOptions.AmqpOptionsBuffer.create(AmqpMapMarshaller.createEncoded(buffer));
+ public IAmqpList<AmqpType<?, ?>> decode(EncodedBuffer[] constituents) {
+ if (constituents.length > 3) {
+ throw new AmqpEncodingError("Too many fields for " + SYMBOLIC_ID + ":" + constituents.length);
}
- case 1: {
- return AmqpHandle.AmqpHandleBuffer.create(AmqpUintMarshaller.createEncoded(buffer));
+ int dataCount = constituents.length;
+ IAmqpList<AmqpType<?, ?>> rc = new IAmqpList.ArrayBackedList<AmqpType<?, ?>>(new AmqpType<?, ?>[3]);
+ //options:
+ if(dataCount > 0) {
+ rc.set(0, AmqpOptions.AmqpOptionsBuffer.create(AmqpMapMarshaller.createEncoded(constituents[0])));
+ dataCount--;
}
- case 2: {
- return AmqpDeliveryTag.AmqpDeliveryTagBuffer.create(AmqpBinaryMarshaller.createEncoded(buffer));
+
+ //handle:
+ if(dataCount > 0) {
+ rc.set(1, AmqpHandle.AmqpHandleBuffer.create(AmqpUintMarshaller.createEncoded(constituents[1])));
+ dataCount--;
}
- default: {
- return AmqpMarshaller.SINGLETON.decodeType(buffer);
+ else {
+ throw new AmqpEncodingError("Missing required field for " + SYMBOLIC_ID + ": handle");
}
+
+ //barrier:
+ if(dataCount > 0) {
+ rc.set(2, AmqpDeliveryTag.AmqpDeliveryTagBuffer.create(AmqpBinaryMarshaller.createEncoded(constituents[2])));
+ dataCount--;
}
+ return rc;
}
};
- public static class AmqpBarEncoded extends DescribedEncoded<IAmqpList> {
+ public static class AmqpBarEncoded extends DescribedEncoded<IAmqpList<AmqpType<?, ?>>> {
public AmqpBarEncoded(DescribedBuffer buffer) {
super(buffer);
@@ -104,11 +127,11 @@
return NUMERIC_ID;
}
- protected final Encoded<IAmqpList> decodeDescribed(EncodedBuffer encoded) throws AmqpEncodingError {
+ protected final Encoded<IAmqpList<AmqpType<?, ?>>> decodeDescribed(EncodedBuffer encoded) throws AmqpEncodingError {
return AmqpListMarshaller.createEncoded(encoded, DECODER);
}
- protected final Encoded<IAmqpList> unmarshalDescribed(DataInput in) throws IOException {
+ protected final Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalDescribed(DataInput in) throws IOException {
return AmqpListMarshaller.createEncoded(in, DECODER);
}
@@ -117,19 +140,19 @@
}
}
- public static final Encoded<IAmqpList> encode(AmqpBar value) throws AmqpEncodingError {
+ public static final Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpBar value) throws AmqpEncodingError {
return new AmqpBarEncoded(value);
}
- static final Encoded<IAmqpList> createEncoded(Buffer source, int offset) throws AmqpEncodingError {
+ static final Encoded<IAmqpList<AmqpType<?, ?>>> createEncoded(Buffer source, int offset) throws AmqpEncodingError {
return createEncoded(FormatCategory.createBuffer(source, offset));
}
- static final Encoded<IAmqpList> createEncoded(DataInput in) throws IOException, AmqpEncodingError {
+ static final Encoded<IAmqpList<AmqpType<?, ?>>> createEncoded(DataInput in) throws IOException, AmqpEncodingError {
return createEncoded(FormatCategory.createBuffer(in.readByte(), in));
}
- static final Encoded<IAmqpList> createEncoded(EncodedBuffer buffer) throws AmqpEncodingError {
+ static final Encoded<IAmqpList<AmqpType<?, ?>>> createEncoded(EncodedBuffer buffer) throws AmqpEncodingError {
byte fc = buffer.getEncodingFormatCode();
if (fc == Encoder.NULL_FORMAT_CODE) {
return NULL_ENCODED;
Modified: activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpBinaryMarshaller.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpBinaryMarshaller.java?rev=909704&r1=909703&r2=909704&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpBinaryMarshaller.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpBinaryMarshaller.java Sat Feb 13 03:20:16 2010
@@ -130,14 +130,14 @@
ENCODER.encodeBinaryVbin8(value, encoded, offset);
}
- public final Buffer decode(EncodedBuffer encoded) throws AmqpEncodingError {
- return ENCODER.decodeBinaryVbin8(encoded.getBuffer(), encoded.getDataOffset(), encoded.getDataSize());
- }
-
public final void marshalData(DataOutput out) throws IOException {
ENCODER.writeBinaryVbin8(value, out);
}
+ public final Buffer decode(EncodedBuffer encoded) throws AmqpEncodingError {
+ return ENCODER.decodeBinaryVbin8(encoded.getBuffer(), encoded.getDataOffset(), encoded.getDataSize());
+ }
+
public final Buffer unmarshalData(DataInput in) throws IOException {
return ENCODER.readBinaryVbin8(getDataSize(), in);
}
@@ -165,14 +165,14 @@
ENCODER.encodeBinaryVbin32(value, encoded, offset);
}
- public final Buffer decode(EncodedBuffer encoded) throws AmqpEncodingError {
- return ENCODER.decodeBinaryVbin32(encoded.getBuffer(), encoded.getDataOffset(), encoded.getDataSize());
- }
-
public final void marshalData(DataOutput out) throws IOException {
ENCODER.writeBinaryVbin32(value, out);
}
+ public final Buffer decode(EncodedBuffer encoded) throws AmqpEncodingError {
+ return ENCODER.decodeBinaryVbin32(encoded.getBuffer(), encoded.getDataOffset(), encoded.getDataSize());
+ }
+
public final Buffer unmarshalData(DataInput in) throws IOException {
return ENCODER.readBinaryVbin32(getDataSize(), in);
}
Modified: activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpBooleanMarshaller.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpBooleanMarshaller.java?rev=909704&r1=909703&r2=909704&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpBooleanMarshaller.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpBooleanMarshaller.java Sat Feb 13 03:20:16 2010
@@ -127,14 +127,14 @@
}
- public final Boolean decode(EncodedBuffer encoded) throws AmqpEncodingError {
- return ENCODER.valueOfBoolean(encoding);
- }
-
public final void marshalData(DataOutput out) throws IOException {
}
+ public final Boolean decode(EncodedBuffer encoded) throws AmqpEncodingError {
+ return ENCODER.valueOfBoolean(encoding);
+ }
+
public final Boolean unmarshalData(DataInput in) throws IOException {
return ENCODER.valueOfBoolean(encoding);
}
@@ -158,14 +158,14 @@
}
- public final Boolean decode(EncodedBuffer encoded) throws AmqpEncodingError {
- return ENCODER.valueOfBoolean(encoding);
- }
-
public final void marshalData(DataOutput out) throws IOException {
}
+ public final Boolean decode(EncodedBuffer encoded) throws AmqpEncodingError {
+ return ENCODER.valueOfBoolean(encoding);
+ }
+
public final Boolean unmarshalData(DataInput in) throws IOException {
return ENCODER.valueOfBoolean(encoding);
}
Modified: activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpCloseMarshaller.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpCloseMarshaller.java?rev=909704&r1=909703&r2=909704&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpCloseMarshaller.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpCloseMarshaller.java Sat Feb 13 03:20:16 2010
@@ -35,7 +35,7 @@
public class AmqpCloseMarshaller implements DescribedTypeMarshaller<AmqpClose>{
static final AmqpCloseMarshaller SINGLETON = new AmqpCloseMarshaller();
- private static final Encoded<IAmqpList> NULL_ENCODED = new Encoder.NullEncoded<IAmqpList>();
+ private static final Encoded<IAmqpList<AmqpType<?, ?>>> NULL_ENCODED = new Encoder.NullEncoded<IAmqpList<AmqpType<?, ?>>>();
public static final String SYMBOLIC_ID = "amqp:close:list";
//Format code: 0x00000001:0x00000204:
@@ -49,37 +49,48 @@
(byte) 0x00, (byte) 0x00, (byte) 0x02, (byte) 0x04 // DESCRIPTOR ID CODE
}), 0);
- private static final ListDecoder DECODER = new ListDecoder() {
- public final AmqpType<?, ?> unmarshalType(int pos, DataInput in) throws IOException {
- switch(pos) {
- case 0: {
- return AmqpOptions.AmqpOptionsBuffer.create(AmqpMapMarshaller.createEncoded(in));
+ private static final ListDecoder<AmqpType<?, ?>> DECODER = new ListDecoder<AmqpType<?, ?>>() {
+ public final IAmqpList<AmqpType<?, ?>> unmarshalType(int dataCount, int dataSize, DataInput in) throws AmqpEncodingError, IOException {
+ if (dataCount > 2) {
+ throw new AmqpEncodingError("Too many fields for " + SYMBOLIC_ID + ": " + dataCount);
}
- case 1: {
- return AmqpConnectionError.AmqpConnectionErrorBuffer.create(AmqpConnectionErrorMarshaller.createEncoded(in));
- }
- default: {
- return AmqpMarshaller.SINGLETON.unmarshalType(in);
+ IAmqpList<AmqpType<?, ?>> rc = new IAmqpList.ArrayBackedList<AmqpType<?, ?>>(new AmqpType<?, ?>[2]);
+ //options:
+ if(dataCount > 0) {
+ rc.set(0, AmqpOptions.AmqpOptionsBuffer.create(AmqpMapMarshaller.createEncoded(in)));
+ dataCount--;
}
+
+ //exception:
+ if(dataCount > 0) {
+ rc.set(1, AmqpConnectionError.AmqpConnectionErrorBuffer.create(AmqpConnectionErrorMarshaller.createEncoded(in)));
+ dataCount--;
}
+ return rc;
}
- public final AmqpType<?, ?> decodeType(int pos, EncodedBuffer buffer) throws AmqpEncodingError {
- switch(pos) {
- case 0: {
- return AmqpOptions.AmqpOptionsBuffer.create(AmqpMapMarshaller.createEncoded(buffer));
+ public IAmqpList<AmqpType<?, ?>> decode(EncodedBuffer[] constituents) {
+ if (constituents.length > 2) {
+ throw new AmqpEncodingError("Too many fields for " + SYMBOLIC_ID + ":" + constituents.length);
}
- case 1: {
- return AmqpConnectionError.AmqpConnectionErrorBuffer.create(AmqpConnectionErrorMarshaller.createEncoded(buffer));
- }
- default: {
- return AmqpMarshaller.SINGLETON.decodeType(buffer);
+ int dataCount = constituents.length;
+ IAmqpList<AmqpType<?, ?>> rc = new IAmqpList.ArrayBackedList<AmqpType<?, ?>>(new AmqpType<?, ?>[2]);
+ //options:
+ if(dataCount > 0) {
+ rc.set(0, AmqpOptions.AmqpOptionsBuffer.create(AmqpMapMarshaller.createEncoded(constituents[0])));
+ dataCount--;
}
+
+ //exception:
+ if(dataCount > 0) {
+ rc.set(1, AmqpConnectionError.AmqpConnectionErrorBuffer.create(AmqpConnectionErrorMarshaller.createEncoded(constituents[1])));
+ dataCount--;
}
+ return rc;
}
};
- public static class AmqpCloseEncoded extends DescribedEncoded<IAmqpList> {
+ public static class AmqpCloseEncoded extends DescribedEncoded<IAmqpList<AmqpType<?, ?>>> {
public AmqpCloseEncoded(DescribedBuffer buffer) {
super(buffer);
@@ -97,11 +108,11 @@
return NUMERIC_ID;
}
- protected final Encoded<IAmqpList> decodeDescribed(EncodedBuffer encoded) throws AmqpEncodingError {
+ protected final Encoded<IAmqpList<AmqpType<?, ?>>> decodeDescribed(EncodedBuffer encoded) throws AmqpEncodingError {
return AmqpListMarshaller.createEncoded(encoded, DECODER);
}
- protected final Encoded<IAmqpList> unmarshalDescribed(DataInput in) throws IOException {
+ protected final Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalDescribed(DataInput in) throws IOException {
return AmqpListMarshaller.createEncoded(in, DECODER);
}
@@ -110,19 +121,19 @@
}
}
- public static final Encoded<IAmqpList> encode(AmqpClose value) throws AmqpEncodingError {
+ public static final Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpClose value) throws AmqpEncodingError {
return new AmqpCloseEncoded(value);
}
- static final Encoded<IAmqpList> createEncoded(Buffer source, int offset) throws AmqpEncodingError {
+ static final Encoded<IAmqpList<AmqpType<?, ?>>> createEncoded(Buffer source, int offset) throws AmqpEncodingError {
return createEncoded(FormatCategory.createBuffer(source, offset));
}
- static final Encoded<IAmqpList> createEncoded(DataInput in) throws IOException, AmqpEncodingError {
+ static final Encoded<IAmqpList<AmqpType<?, ?>>> createEncoded(DataInput in) throws IOException, AmqpEncodingError {
return createEncoded(FormatCategory.createBuffer(in.readByte(), in));
}
- static final Encoded<IAmqpList> createEncoded(EncodedBuffer buffer) throws AmqpEncodingError {
+ static final Encoded<IAmqpList<AmqpType<?, ?>>> createEncoded(EncodedBuffer buffer) throws AmqpEncodingError {
byte fc = buffer.getEncodingFormatCode();
if (fc == Encoder.NULL_FORMAT_CODE) {
return NULL_ENCODED;
Modified: activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpCompletedMarshaller.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpCompletedMarshaller.java?rev=909704&r1=909703&r2=909704&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpCompletedMarshaller.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpCompletedMarshaller.java Sat Feb 13 03:20:16 2010
@@ -51,37 +51,46 @@
private static final MapDecoder<AmqpSymbol, AmqpType<?, ?>> DECODER = new MapDecoder<AmqpSymbol, AmqpType<?, ?>>() {
- public IAmqpMap<AmqpSymbol, AmqpType<?, ?>> createMap(int entryCount) {
- return new IAmqpMap.AmqpWrapperMap<AmqpSymbol, AmqpType<?,?>>(new HashMap<AmqpSymbol, AmqpType<?,?>>());
-
- }
-
- public void decodeToMap(EncodedBuffer encodedKey, EncodedBuffer encodedValue, IAmqpMap<AmqpSymbol,AmqpType<?, ?>> map) throws AmqpEncodingError {
- AmqpSymbol key = AmqpSymbol.AmqpSymbolBuffer.create(AmqpSymbolMarshaller.createEncoded(encodedKey));
- if (key == null) {
- throw new AmqpEncodingError("Null Key for " + SYMBOLIC_ID);
- }
-
- if (key.equals(AmqpCompleted.TRUNCATE_KEY)){
- map.put(AmqpCompleted.TRUNCATE_KEY, AmqpBoolean.AmqpBooleanBuffer.create(AmqpBooleanMarshaller.createEncoded(encodedValue)));
- }
- else {
- throw new UnexpectedTypeException("Invalid Key for " + SYMBOLIC_ID + " : " + key);
- }
- }
-
- public void unmarshalToMap(DataInput in, IAmqpMap<AmqpSymbol,AmqpType<?, ?>> map) throws IOException, AmqpEncodingError {
- AmqpSymbol key = AmqpSymbol.AmqpSymbolBuffer.create(AmqpSymbolMarshaller.createEncoded(in));
- if (key == null) {
- throw new AmqpEncodingError("Null Key for " + SYMBOLIC_ID);
- }
-
- if (key.equals(AmqpCompleted.TRUNCATE_KEY)){
- map.put(AmqpCompleted.TRUNCATE_KEY, AmqpBoolean.AmqpBooleanBuffer.create(AmqpBooleanMarshaller.createEncoded(in)));
- }
- else {
- throw new UnexpectedTypeException("Invalid Key for " + SYMBOLIC_ID + " : " + key);
+ public IAmqpMap<AmqpSymbol, AmqpType<?, ?>> decode(EncodedBuffer[] constituents) throws AmqpEncodingError {
+ IAmqpMap<AmqpSymbol, AmqpType<?, ?>> rc = new IAmqpMap.AmqpWrapperMap<AmqpSymbol, AmqpType<?,?>>(new HashMap<AmqpSymbol, AmqpType<?,?>>());
+ if (constituents.length % 2 != 0) {
+ throw new AmqpEncodingError("Invalid number of compound constituents for " + SYMBOLIC_ID + ": " + constituents.length);
+ }
+ for (int i = 0; i < constituents.length; i += 2) {
+ AmqpSymbol key = AmqpSymbol.AmqpSymbolBuffer.create(AmqpSymbolMarshaller.createEncoded(constituents[i]));
+ if (key == null) {
+ throw new AmqpEncodingError("Null Key for " + SYMBOLIC_ID);
+ }
+
+ if (key.equals(AmqpCompleted.TRUNCATE_KEY)){
+ rc.put(AmqpCompleted.TRUNCATE_KEY, AmqpBoolean.AmqpBooleanBuffer.create(AmqpBooleanMarshaller.createEncoded(constituents[i + 1])));
+ }
+ else {
+ throw new UnexpectedTypeException("Invalid field key for " + SYMBOLIC_ID + " : " + key);
+ }
+ }
+ return rc;
+ }
+
+ public IAmqpMap<AmqpSymbol, AmqpType<?, ?>> unmarshalType(int dataCount, int dataSize, DataInput in) throws IOException, AmqpEncodingError {
+ IAmqpMap<AmqpSymbol, AmqpType<?, ?>> rc = new IAmqpMap.AmqpWrapperMap<AmqpSymbol, AmqpType<?,?>>(new HashMap<AmqpSymbol, AmqpType<?,?>>());
+ if (dataCount % 2 != 0) {
+ throw new AmqpEncodingError("Invalid number of compound constituents for " + SYMBOLIC_ID + ": " + dataCount);
+ }
+ for (int i = 0; i < dataCount; i += 2) {
+ AmqpSymbol key = AmqpSymbol.AmqpSymbolBuffer.create(AmqpSymbolMarshaller.createEncoded(in));
+ if (key == null) {
+ throw new AmqpEncodingError("Null Key for " + SYMBOLIC_ID);
+ }
+
+ if (key.equals(AmqpCompleted.TRUNCATE_KEY)){
+ rc.put(AmqpCompleted.TRUNCATE_KEY, AmqpBoolean.AmqpBooleanBuffer.create(AmqpBooleanMarshaller.createEncoded(in)));
+ }
+ else {
+ throw new UnexpectedTypeException("Invalid field key for " + SYMBOLIC_ID + " : " + key);
+ }
}
+ return rc;
}
};
Modified: activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpConnectionErrorMarshaller.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpConnectionErrorMarshaller.java?rev=909704&r1=909703&r2=909704&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpConnectionErrorMarshaller.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpConnectionErrorMarshaller.java Sat Feb 13 03:20:16 2010
@@ -36,7 +36,7 @@
public class AmqpConnectionErrorMarshaller implements DescribedTypeMarshaller<AmqpConnectionError>{
static final AmqpConnectionErrorMarshaller SINGLETON = new AmqpConnectionErrorMarshaller();
- private static final Encoded<IAmqpList> NULL_ENCODED = new Encoder.NullEncoded<IAmqpList>();
+ private static final Encoded<IAmqpList<AmqpType<?, ?>>> NULL_ENCODED = new Encoder.NullEncoded<IAmqpList<AmqpType<?, ?>>>();
public static final String SYMBOLIC_ID = "amqp:connection-error:list";
//Format code: 0x00000001:0x00000101:
@@ -50,43 +50,66 @@
(byte) 0x00, (byte) 0x00, (byte) 0x01, (byte) 0x01 // DESCRIPTOR ID CODE
}), 0);
- private static final ListDecoder DECODER = new ListDecoder() {
- public final AmqpType<?, ?> unmarshalType(int pos, DataInput in) throws IOException {
- switch(pos) {
- case 0: {
- return AmqpUshort.AmqpUshortBuffer.create(AmqpUshortMarshaller.createEncoded(in));
+ private static final ListDecoder<AmqpType<?, ?>> DECODER = new ListDecoder<AmqpType<?, ?>>() {
+ public final IAmqpList<AmqpType<?, ?>> unmarshalType(int dataCount, int dataSize, DataInput in) throws AmqpEncodingError, IOException {
+ if (dataCount > 3) {
+ throw new AmqpEncodingError("Too many fields for " + SYMBOLIC_ID + ": " + dataCount);
}
- case 1: {
- return AmqpString.AmqpStringBuffer.create(AmqpStringMarshaller.createEncoded(in));
+ IAmqpList<AmqpType<?, ?>> rc = new IAmqpList.ArrayBackedList<AmqpType<?, ?>>(new AmqpType<?, ?>[3]);
+ //error-code:
+ if(dataCount > 0) {
+ rc.set(0, AmqpUshort.AmqpUshortBuffer.create(AmqpUshortMarshaller.createEncoded(in)));
+ dataCount--;
}
- case 2: {
- return AmqpMap.AmqpMapBuffer.create(AmqpMapMarshaller.createEncoded(in));
+ else {
+ throw new AmqpEncodingError("Missing required field for " + SYMBOLIC_ID + ": error-code");
}
- default: {
- return AmqpMarshaller.SINGLETON.unmarshalType(in);
+
+ //description:
+ if(dataCount > 0) {
+ rc.set(1, AmqpString.AmqpStringBuffer.create(AmqpStringMarshaller.createEncoded(in)));
+ dataCount--;
}
+
+ //error-info:
+ if(dataCount > 0) {
+ rc.set(2, AmqpMap.AmqpMapBuffer.create(AmqpMapMarshaller.createEncoded(in)));
+ dataCount--;
}
+ return rc;
}
- public final AmqpType<?, ?> decodeType(int pos, EncodedBuffer buffer) throws AmqpEncodingError {
- switch(pos) {
- case 0: {
- return AmqpUshort.AmqpUshortBuffer.create(AmqpUshortMarshaller.createEncoded(buffer));
+ public IAmqpList<AmqpType<?, ?>> decode(EncodedBuffer[] constituents) {
+ if (constituents.length > 3) {
+ throw new AmqpEncodingError("Too many fields for " + SYMBOLIC_ID + ":" + constituents.length);
}
- case 1: {
- return AmqpString.AmqpStringBuffer.create(AmqpStringMarshaller.createEncoded(buffer));
+ int dataCount = constituents.length;
+ IAmqpList<AmqpType<?, ?>> rc = new IAmqpList.ArrayBackedList<AmqpType<?, ?>>(new AmqpType<?, ?>[3]);
+ //error-code:
+ if(dataCount > 0) {
+ rc.set(0, AmqpUshort.AmqpUshortBuffer.create(AmqpUshortMarshaller.createEncoded(constituents[0])));
+ dataCount--;
}
- case 2: {
- return AmqpMap.AmqpMapBuffer.create(AmqpMapMarshaller.createEncoded(buffer));
+ else {
+ throw new AmqpEncodingError("Missing required field for " + SYMBOLIC_ID + ": error-code");
}
- default: {
- return AmqpMarshaller.SINGLETON.decodeType(buffer);
+
+ //description:
+ if(dataCount > 0) {
+ rc.set(1, AmqpString.AmqpStringBuffer.create(AmqpStringMarshaller.createEncoded(constituents[1])));
+ dataCount--;
}
+
+ //error-info:
+ if(dataCount > 0) {
+ rc.set(2, AmqpMap.AmqpMapBuffer.create(AmqpMapMarshaller.createEncoded(constituents[2])));
+ dataCount--;
}
+ return rc;
}
};
- public static class AmqpConnectionErrorEncoded extends DescribedEncoded<IAmqpList> {
+ public static class AmqpConnectionErrorEncoded extends DescribedEncoded<IAmqpList<AmqpType<?, ?>>> {
public AmqpConnectionErrorEncoded(DescribedBuffer buffer) {
super(buffer);
@@ -104,11 +127,11 @@
return NUMERIC_ID;
}
- protected final Encoded<IAmqpList> decodeDescribed(EncodedBuffer encoded) throws AmqpEncodingError {
+ protected final Encoded<IAmqpList<AmqpType<?, ?>>> decodeDescribed(EncodedBuffer encoded) throws AmqpEncodingError {
return AmqpListMarshaller.createEncoded(encoded, DECODER);
}
- protected final Encoded<IAmqpList> unmarshalDescribed(DataInput in) throws IOException {
+ protected final Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalDescribed(DataInput in) throws IOException {
return AmqpListMarshaller.createEncoded(in, DECODER);
}
@@ -117,19 +140,19 @@
}
}
- public static final Encoded<IAmqpList> encode(AmqpConnectionError value) throws AmqpEncodingError {
+ public static final Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpConnectionError value) throws AmqpEncodingError {
return new AmqpConnectionErrorEncoded(value);
}
- static final Encoded<IAmqpList> createEncoded(Buffer source, int offset) throws AmqpEncodingError {
+ static final Encoded<IAmqpList<AmqpType<?, ?>>> createEncoded(Buffer source, int offset) throws AmqpEncodingError {
return createEncoded(FormatCategory.createBuffer(source, offset));
}
- static final Encoded<IAmqpList> createEncoded(DataInput in) throws IOException, AmqpEncodingError {
+ static final Encoded<IAmqpList<AmqpType<?, ?>>> createEncoded(DataInput in) throws IOException, AmqpEncodingError {
return createEncoded(FormatCategory.createBuffer(in.readByte(), in));
}
- static final Encoded<IAmqpList> createEncoded(EncodedBuffer buffer) throws AmqpEncodingError {
+ static final Encoded<IAmqpList<AmqpType<?, ?>>> createEncoded(EncodedBuffer buffer) throws AmqpEncodingError {
byte fc = buffer.getEncodingFormatCode();
if (fc == Encoder.NULL_FORMAT_CODE) {
return NULL_ENCODED;
Modified: activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpDetachMarshaller.java
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpDetachMarshaller.java?rev=909704&r1=909703&r2=909704&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpDetachMarshaller.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-amqp/src/main/java/org/apache/activemq/amqp/protocol/marshaller/v1_0_0/AmqpDetachMarshaller.java Sat Feb 13 03:20:16 2010
@@ -37,7 +37,7 @@
public class AmqpDetachMarshaller implements DescribedTypeMarshaller<AmqpDetach>{
static final AmqpDetachMarshaller SINGLETON = new AmqpDetachMarshaller();
- private static final Encoded<IAmqpList> NULL_ENCODED = new Encoder.NullEncoded<IAmqpList>();
+ private static final Encoded<IAmqpList<AmqpType<?, ?>>> NULL_ENCODED = new Encoder.NullEncoded<IAmqpList<AmqpType<?, ?>>>();
public static final String SYMBOLIC_ID = "amqp:detach:list";
//Format code: 0x00000001:0x00000203:
@@ -51,49 +51,78 @@
(byte) 0x00, (byte) 0x00, (byte) 0x02, (byte) 0x03 // DESCRIPTOR ID CODE
}), 0);
- private static final ListDecoder DECODER = new ListDecoder() {
- public final AmqpType<?, ?> unmarshalType(int pos, DataInput in) throws IOException {
- switch(pos) {
- case 0: {
- return AmqpOptions.AmqpOptionsBuffer.create(AmqpMapMarshaller.createEncoded(in));
+ private static final ListDecoder<AmqpType<?, ?>> DECODER = new ListDecoder<AmqpType<?, ?>>() {
+ public final IAmqpList<AmqpType<?, ?>> unmarshalType(int dataCount, int dataSize, DataInput in) throws AmqpEncodingError, IOException {
+ if (dataCount > 4) {
+ throw new AmqpEncodingError("Too many fields for " + SYMBOLIC_ID + ": " + dataCount);
}
- case 1: {
- return AmqpSessionName.AmqpSessionNameBuffer.create(AmqpBinaryMarshaller.createEncoded(in));
+ IAmqpList<AmqpType<?, ?>> rc = new IAmqpList.ArrayBackedList<AmqpType<?, ?>>(new AmqpType<?, ?>[4]);
+ //options:
+ if(dataCount > 0) {
+ rc.set(0, AmqpOptions.AmqpOptionsBuffer.create(AmqpMapMarshaller.createEncoded(in)));
+ dataCount--;
}
- case 2: {
- return AmqpBoolean.AmqpBooleanBuffer.create(AmqpBooleanMarshaller.createEncoded(in));
+
+ //name:
+ if(dataCount > 0) {
+ rc.set(1, AmqpSessionName.AmqpSessionNameBuffer.create(AmqpBinaryMarshaller.createEncoded(in)));
+ dataCount--;
}
- case 3: {
- return AmqpSessionError.AmqpSessionErrorBuffer.create(AmqpSessionErrorMarshaller.createEncoded(in));
+ else {
+ throw new AmqpEncodingError("Missing required field for " + SYMBOLIC_ID + ": name");
}
- default: {
- return AmqpMarshaller.SINGLETON.unmarshalType(in);
+
+ //closing:
+ if(dataCount > 0) {
+ rc.set(2, AmqpBoolean.AmqpBooleanBuffer.create(AmqpBooleanMarshaller.createEncoded(in)));
+ dataCount--;
}
+
+ //exception:
+ if(dataCount > 0) {
+ rc.set(3, AmqpSessionError.AmqpSessionErrorBuffer.create(AmqpSessionErrorMarshaller.createEncoded(in)));
+ dataCount--;
}
+ return rc;
}
- public final AmqpType<?, ?> decodeType(int pos, EncodedBuffer buffer) throws AmqpEncodingError {
- switch(pos) {
- case 0: {
- return AmqpOptions.AmqpOptionsBuffer.create(AmqpMapMarshaller.createEncoded(buffer));
+ public IAmqpList<AmqpType<?, ?>> decode(EncodedBuffer[] constituents) {
+ if (constituents.length > 4) {
+ throw new AmqpEncodingError("Too many fields for " + SYMBOLIC_ID + ":" + constituents.length);
}
- case 1: {
- return AmqpSessionName.AmqpSessionNameBuffer.create(AmqpBinaryMarshaller.createEncoded(buffer));
+ int dataCount = constituents.length;
+ IAmqpList<AmqpType<?, ?>> rc = new IAmqpList.ArrayBackedList<AmqpType<?, ?>>(new AmqpType<?, ?>[4]);
+ //options:
+ if(dataCount > 0) {
+ rc.set(0, AmqpOptions.AmqpOptionsBuffer.create(AmqpMapMarshaller.createEncoded(constituents[0])));
+ dataCount--;
}
- case 2: {
- return AmqpBoolean.AmqpBooleanBuffer.create(AmqpBooleanMarshaller.createEncoded(buffer));
+
+ //name:
+ if(dataCount > 0) {
+ rc.set(1, AmqpSessionName.AmqpSessionNameBuffer.create(AmqpBinaryMarshaller.createEncoded(constituents[1])));
+ dataCount--;
}
- case 3: {
- return AmqpSessionError.AmqpSessionErrorBuffer.create(AmqpSessionErrorMarshaller.createEncoded(buffer));
+ else {
+ throw new AmqpEncodingError("Missing required field for " + SYMBOLIC_ID + ": name");
}
- default: {
- return AmqpMarshaller.SINGLETON.decodeType(buffer);
+
+ //closing:
+ if(dataCount > 0) {
+ rc.set(2, AmqpBoolean.AmqpBooleanBuffer.create(AmqpBooleanMarshaller.createEncoded(constituents[2])));
+ dataCount--;
}
+
+ //exception:
+ if(dataCount > 0) {
+ rc.set(3, AmqpSessionError.AmqpSessionErrorBuffer.create(AmqpSessionErrorMarshaller.createEncoded(constituents[3])));
+ dataCount--;
}
+ return rc;
}
};
- public static class AmqpDetachEncoded extends DescribedEncoded<IAmqpList> {
+ public static class AmqpDetachEncoded extends DescribedEncoded<IAmqpList<AmqpType<?, ?>>> {
public AmqpDetachEncoded(DescribedBuffer buffer) {
super(buffer);
@@ -111,11 +140,11 @@
return NUMERIC_ID;
}
- protected final Encoded<IAmqpList> decodeDescribed(EncodedBuffer encoded) throws AmqpEncodingError {
+ protected final Encoded<IAmqpList<AmqpType<?, ?>>> decodeDescribed(EncodedBuffer encoded) throws AmqpEncodingError {
return AmqpListMarshaller.createEncoded(encoded, DECODER);
}
- protected final Encoded<IAmqpList> unmarshalDescribed(DataInput in) throws IOException {
+ protected final Encoded<IAmqpList<AmqpType<?, ?>>> unmarshalDescribed(DataInput in) throws IOException {
return AmqpListMarshaller.createEncoded(in, DECODER);
}
@@ -124,19 +153,19 @@
}
}
- public static final Encoded<IAmqpList> encode(AmqpDetach value) throws AmqpEncodingError {
+ public static final Encoded<IAmqpList<AmqpType<?, ?>>> encode(AmqpDetach value) throws AmqpEncodingError {
return new AmqpDetachEncoded(value);
}
- static final Encoded<IAmqpList> createEncoded(Buffer source, int offset) throws AmqpEncodingError {
+ static final Encoded<IAmqpList<AmqpType<?, ?>>> createEncoded(Buffer source, int offset) throws AmqpEncodingError {
return createEncoded(FormatCategory.createBuffer(source, offset));
}
- static final Encoded<IAmqpList> createEncoded(DataInput in) throws IOException, AmqpEncodingError {
+ static final Encoded<IAmqpList<AmqpType<?, ?>>> createEncoded(DataInput in) throws IOException, AmqpEncodingError {
return createEncoded(FormatCategory.createBuffer(in.readByte(), in));
}
- static final Encoded<IAmqpList> createEncoded(EncodedBuffer buffer) throws AmqpEncodingError {
+ static final Encoded<IAmqpList<AmqpType<?, ?>>> createEncoded(EncodedBuffer buffer) throws AmqpEncodingError {
byte fc = buffer.getEncodingFormatCode();
if (fc == Encoder.NULL_FORMAT_CODE) {
return NULL_ENCODED;
|