public class org.apache.activemq.transport.stomp.StompSubscription extends java.lang.Object
{
private static final org.slf4j.Logger LOG;
private static final org.apache.activemq.util.IdGenerator ACK_ID_GENERATOR;
public static final java.lang.String AUTO_ACK;
public static final java.lang.String CLIENT_ACK;
public static final java.lang.String INDIVIDUAL_ACK;
protected final org.apache.activemq.transport.stomp.ProtocolConverter protocolConverter;
protected final java.lang.String subscriptionId;
protected final org.apache.activemq.command.ConsumerInfo consumerInfo;
protected final java.util.Map dispatchedMessage;
protected final java.util.Map pendingAcks;
protected final java.util.LinkedList transactedMessages;
protected java.lang.String ackMode;
protected org.apache.activemq.command.ActiveMQDestination destination;
protected java.lang.String transformation;
public void <init>(org.apache.activemq.transport.stomp.ProtocolConverter, java.lang.String, org.apache.activemq.command.ConsumerInfo, java.lang.String, java.util.Map)
{
org.apache.activemq.transport.stomp.StompSubscription v;
org.apache.activemq.transport.stomp.ProtocolConverter v;
java.util.LinkedHashMap v;
java.util.Map v;
java.lang.String v, v;
java.util.LinkedList v;
org.apache.activemq.command.ConsumerInfo v;
v := @this: org.apache.activemq.transport.stomp.StompSubscription;
v := @parameter: org.apache.activemq.transport.stomp.ProtocolConverter;
v := @parameter: java.lang.String;
v := @parameter: org.apache.activemq.command.ConsumerInfo;
v := @parameter: java.lang.String;
v := @parameter: java.util.Map;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.LinkedHashMap;
specialinvoke v.<java.util.LinkedHashMap: void <init>()>();
v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.Map dispatchedMessage> = v;
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.LinkedList transactedMessages> = v;
v.<org.apache.activemq.transport.stomp.StompSubscription: java.lang.String ackMode> = "auto";
v.<org.apache.activemq.transport.stomp.StompSubscription: org.apache.activemq.transport.stomp.ProtocolConverter protocolConverter> = v;
v.<org.apache.activemq.transport.stomp.StompSubscription: java.lang.String subscriptionId> = v;
v.<org.apache.activemq.transport.stomp.StompSubscription: org.apache.activemq.command.ConsumerInfo consumerInfo> = v;
v.<org.apache.activemq.transport.stomp.StompSubscription: java.lang.String transformation> = v;
v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.Map pendingAcks> = v;
return;
}
void onMessageDispatch(org.apache.activemq.command.MessageDispatch) throws java.io.IOException, javax.jms.JMSException
{
org.apache.activemq.command.Message v;
org.apache.activemq.command.MessageDispatch v;
java.util.Map v, v, v, v, v;
boolean v, v, v, v, v, v, v;
org.apache.activemq.transport.stomp.StompAckEntry v;
org.apache.activemq.transport.stomp.StompTransport v, v;
org.apache.activemq.command.MessageId v;
org.apache.activemq.transport.stomp.StompFrame v;
java.lang.Throwable v;
org.apache.activemq.transport.stomp.ProtocolConverter v, v, v, v, v;
java.lang.String v, v, v, v, v, v;
org.apache.activemq.command.MessageAck v;
org.apache.activemq.transport.stomp.StompSubscription v;
java.io.IOException v;
org.apache.activemq.util.IdGenerator v;
v := @this: org.apache.activemq.transport.stomp.StompSubscription;
v := @parameter: org.apache.activemq.command.MessageDispatch;
v = virtualinvoke v.<org.apache.activemq.command.MessageDispatch: org.apache.activemq.command.Message getMessage()>();
v = null;
v = virtualinvoke v.<org.apache.activemq.transport.stomp.StompSubscription: boolean isClientAck()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.transport.stomp.StompSubscription: boolean isIndividualAck()>();
if v == 0 goto label;
label:
v = <org.apache.activemq.transport.stomp.StompSubscription: org.apache.activemq.util.IdGenerator ACK_ID_GENERATOR>;
v = virtualinvoke v.<org.apache.activemq.util.IdGenerator: java.lang.String generateId()>();
v = new org.apache.activemq.transport.stomp.StompAckEntry;
specialinvoke v.<org.apache.activemq.transport.stomp.StompAckEntry: void <init>(org.apache.activemq.command.MessageDispatch,java.lang.String,org.apache.activemq.transport.stomp.StompSubscription)>(v, v, v);
entermonitor v;
label:
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.Map dispatchedMessage>;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: org.apache.activemq.command.MessageId getMessageId()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<org.apache.activemq.transport.stomp.StompSubscription: org.apache.activemq.transport.stomp.ProtocolConverter protocolConverter>;
v = virtualinvoke v.<org.apache.activemq.transport.stomp.ProtocolConverter: boolean isStomp12()>();
if v == 0 goto label;
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.Map pendingAcks>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.transport.stomp.StompSubscription: boolean isAutoAck()>();
if v == 0 goto label;
v = new org.apache.activemq.command.MessageAck;
specialinvoke v.<org.apache.activemq.command.MessageAck: void <init>(org.apache.activemq.command.MessageDispatch,byte,int)>(v, 2, 1);
v = v.<org.apache.activemq.transport.stomp.StompSubscription: org.apache.activemq.transport.stomp.ProtocolConverter protocolConverter>;
v = virtualinvoke v.<org.apache.activemq.transport.stomp.ProtocolConverter: org.apache.activemq.transport.stomp.StompTransport getStompTransport()>();
interfaceinvoke v.<org.apache.activemq.transport.stomp.StompTransport: void sendToActiveMQ(org.apache.activemq.command.Command)>(v);
label:
v = 0;
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.lang.String transformation>;
if v == null goto label;
v = v instanceof org.apache.activemq.command.ActiveMQBytesMessage;
if v != 0 goto label;
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void setReadOnlyProperties(boolean)>(0);
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.lang.String transformation>;
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void setStringProperty(java.lang.String,java.lang.String)>("transformation", v);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: java.lang.String getStringProperty(java.lang.String)>("transformation");
if v == null goto label;
v = 1;
label:
v = v.<org.apache.activemq.transport.stomp.StompSubscription: org.apache.activemq.transport.stomp.ProtocolConverter protocolConverter>;
v = virtualinvoke v.<org.apache.activemq.transport.stomp.ProtocolConverter: org.apache.activemq.transport.stomp.StompFrame convertMessage(org.apache.activemq.command.ActiveMQMessage,boolean)>(v, v);
virtualinvoke v.<org.apache.activemq.transport.stomp.StompFrame: void setAction(java.lang.String)>("MESSAGE");
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.lang.String subscriptionId>;
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.transport.stomp.StompFrame: java.util.Map getHeaders()>();
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.lang.String subscriptionId>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("subscription", v);
label:
v = v.<org.apache.activemq.transport.stomp.StompSubscription: org.apache.activemq.transport.stomp.ProtocolConverter protocolConverter>;
v = virtualinvoke v.<org.apache.activemq.transport.stomp.ProtocolConverter: boolean isStomp12()>();
if v == 0 goto label;
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.transport.stomp.StompFrame: java.util.Map getHeaders()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("ack", v);
label:
v = v.<org.apache.activemq.transport.stomp.StompSubscription: org.apache.activemq.transport.stomp.ProtocolConverter protocolConverter>;
v = virtualinvoke v.<org.apache.activemq.transport.stomp.ProtocolConverter: org.apache.activemq.transport.stomp.StompTransport getStompTransport()>();
interfaceinvoke v.<org.apache.activemq.transport.stomp.StompTransport: void sendToStomp(org.apache.activemq.transport.stomp.StompFrame)>(v);
label:
goto label;
label:
v := @caughtexception;
if v == null goto label;
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.Map pendingAcks>;
interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
label:
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.io.IOException from label to label with label;
}
synchronized void onStompAbort(org.apache.activemq.command.TransactionId)
{
org.slf4j.Logger v;
java.util.Iterator v;
org.apache.activemq.transport.stomp.StompSubscription v;
java.lang.Integer v;
org.apache.activemq.transport.stomp.ProtocolConverter v;
java.util.Map v;
int v;
java.lang.Object v;
java.lang.String v;
java.util.LinkedList v, v, v;
org.apache.activemq.command.TransactionId v;
boolean v, v;
v := @this: org.apache.activemq.transport.stomp.StompSubscription;
v := @parameter: org.apache.activemq.command.TransactionId;
v = <org.apache.activemq.transport.stomp.StompSubscription: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.LinkedList transactedMessages>;
v = virtualinvoke v.<java.util.LinkedList: int size()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object)>("Transaction Abort restoring {} pending ACKs to valid state.", v);
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.LinkedList transactedMessages>;
v = virtualinvoke v.<java.util.LinkedList: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.apache.activemq.transport.stomp.StompSubscription: org.apache.activemq.transport.stomp.ProtocolConverter protocolConverter>;
v = virtualinvoke v.<org.apache.activemq.transport.stomp.ProtocolConverter: boolean isStomp12()>();
if v == 0 goto label;
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.Map pendingAcks>;
v = virtualinvoke v.<org.apache.activemq.transport.stomp.StompAckEntry: java.lang.String getAckId()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.LinkedList transactedMessages>;
virtualinvoke v.<java.util.LinkedList: void clear()>();
return;
}
void onStompCommit(org.apache.activemq.command.TransactionId)
{
java.lang.Throwable v;
org.apache.activemq.transport.stomp.ProtocolConverter v;
org.apache.activemq.command.MessageDispatch v;
java.util.Map v;
int v;
java.util.LinkedList v, v, v, v, v;
org.apache.activemq.command.TransactionId v;
boolean v, v, v, v;
org.apache.activemq.command.MessageAck v, v;
java.util.Iterator v;
org.apache.activemq.transport.stomp.StompTransport v;
java.util.Collection v;
org.apache.activemq.transport.stomp.StompSubscription v;
java.lang.Object v, v;
v := @this: org.apache.activemq.transport.stomp.StompSubscription;
v := @parameter: org.apache.activemq.command.TransactionId;
v = null;
entermonitor v;
label:
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.Map dispatchedMessage>;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.LinkedList transactedMessages>;
v = virtualinvoke v.<java.util.LinkedList: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
interfaceinvoke v.<java.util.Iterator: void remove()>();
goto label;
label:
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.LinkedList transactedMessages>;
v = virtualinvoke v.<java.util.LinkedList: boolean isEmpty()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.transport.stomp.StompSubscription: boolean isClientAck()>();
if v == 0 goto label;
v = new org.apache.activemq.command.MessageAck;
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.LinkedList transactedMessages>;
v = virtualinvoke v.<java.util.LinkedList: java.lang.Object getLast()>();
v = virtualinvoke v.<org.apache.activemq.transport.stomp.StompAckEntry: org.apache.activemq.command.MessageDispatch getMessageDispatch()>();
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.LinkedList transactedMessages>;
v = virtualinvoke v.<java.util.LinkedList: int size()>();
specialinvoke v.<org.apache.activemq.command.MessageAck: void <init>(org.apache.activemq.command.MessageDispatch,byte,int)>(v, 2, v);
v = v;
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setTransactionId(org.apache.activemq.command.TransactionId)>(v);
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.LinkedList transactedMessages>;
virtualinvoke v.<java.util.LinkedList: void clear()>();
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v == null goto label;
v = v.<org.apache.activemq.transport.stomp.StompSubscription: org.apache.activemq.transport.stomp.ProtocolConverter protocolConverter>;
v = virtualinvoke v.<org.apache.activemq.transport.stomp.ProtocolConverter: org.apache.activemq.transport.stomp.StompTransport getStompTransport()>();
interfaceinvoke v.<org.apache.activemq.transport.stomp.StompTransport: void sendToActiveMQ(org.apache.activemq.command.Command)>(v);
label:
return;
catch java.lang.Throwable from label to label with label;
}
synchronized org.apache.activemq.command.MessageAck onStompMessageAck(java.lang.String, org.apache.activemq.command.TransactionId)
{
org.apache.activemq.command.ConsumerId v;
java.util.Map v, v, v, v, v, v;
boolean v, v, v, v, v;
org.apache.activemq.command.MessageId v, v;
java.util.Collection v;
org.apache.activemq.command.ActiveMQDestination v;
int v;
java.lang.String v, v, v, v, v;
java.util.LinkedList v, v, v;
org.apache.activemq.command.TransactionId v;
org.apache.activemq.command.ConsumerInfo v, v;
org.apache.activemq.command.MessageAck v;
java.util.Iterator v;
org.apache.activemq.transport.stomp.StompSubscription v;
java.lang.Object v, v, v;
v := @this: org.apache.activemq.transport.stomp.StompSubscription;
v := @parameter: java.lang.String;
v := @parameter: org.apache.activemq.command.TransactionId;
v = new org.apache.activemq.command.MessageId;
specialinvoke v.<org.apache.activemq.command.MessageId: void <init>(java.lang.String)>(v);
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.Map dispatchedMessage>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
return null;
label:
v = new org.apache.activemq.command.MessageAck;
specialinvoke v.<org.apache.activemq.command.MessageAck: void <init>()>();
v = v.<org.apache.activemq.transport.stomp.StompSubscription: org.apache.activemq.command.ConsumerInfo consumerInfo>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setDestination(org.apache.activemq.command.ActiveMQDestination)>(v);
v = v.<org.apache.activemq.transport.stomp.StompSubscription: org.apache.activemq.command.ConsumerInfo consumerInfo>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setConsumerId(org.apache.activemq.command.ConsumerId)>(v);
v = virtualinvoke v.<org.apache.activemq.transport.stomp.StompSubscription: boolean isClientAck()>();
if v == 0 goto label;
if v != null goto label;
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setAckType(byte)>(2);
goto label;
label:
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setAckType(byte)>(0);
label:
v = 0;
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.Map dispatchedMessage>;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<org.apache.activemq.transport.stomp.StompAckEntry: org.apache.activemq.command.MessageId getMessageId()>();
v = virtualinvoke v.<org.apache.activemq.transport.stomp.StompAckEntry: java.lang.String getAckId()>();
if v == null goto label;
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.Map pendingAcks>;
v = virtualinvoke v.<org.apache.activemq.transport.stomp.StompAckEntry: java.lang.String getAckId()>();
interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
label:
if v == null goto label;
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.LinkedList transactedMessages>;
v = virtualinvoke v.<java.util.LinkedList: boolean contains(java.lang.Object)>(v);
if v != 0 goto label;
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.LinkedList transactedMessages>;
virtualinvoke v.<java.util.LinkedList: boolean add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
interfaceinvoke v.<java.util.Iterator: void remove()>();
v = v + 1;
label:
v = virtualinvoke v.<org.apache.activemq.command.MessageId: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setLastMessageId(org.apache.activemq.command.MessageId)>(v);
label:
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setMessageCount(int)>(v);
if v == null goto label;
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setTransactionId(org.apache.activemq.command.TransactionId)>(v);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.transport.stomp.StompSubscription: boolean isIndividualAck()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.transport.stomp.StompAckEntry: java.lang.String getAckId()>();
if v == null goto label;
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.Map pendingAcks>;
v = virtualinvoke v.<org.apache.activemq.transport.stomp.StompAckEntry: java.lang.String getAckId()>();
interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
label:
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setAckType(byte)>(4);
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setMessageID(org.apache.activemq.command.MessageId)>(v);
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setMessageCount(int)>(1);
if v == null goto label;
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.LinkedList transactedMessages>;
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.Map dispatchedMessage>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
virtualinvoke v.<java.util.LinkedList: boolean add(java.lang.Object)>(v);
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setTransactionId(org.apache.activemq.command.TransactionId)>(v);
goto label;
label:
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.Map dispatchedMessage>;
interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
label:
return v;
}
public org.apache.activemq.command.MessageAck onStompMessageNack(java.lang.String, org.apache.activemq.command.TransactionId) throws org.apache.activemq.transport.stomp.ProtocolException
{
org.apache.activemq.command.ConsumerId v;
java.util.Map v, v, v, v;
java.lang.String v, v, v;
java.util.LinkedList v;
org.apache.activemq.command.TransactionId v;
org.apache.activemq.command.ConsumerInfo v, v;
boolean v;
org.apache.activemq.command.MessageAck v;
org.apache.activemq.command.MessageId v;
org.apache.activemq.transport.stomp.StompSubscription v;
org.apache.activemq.command.ActiveMQDestination v;
java.lang.Object v;
v := @this: org.apache.activemq.transport.stomp.StompSubscription;
v := @parameter: java.lang.String;
v := @parameter: org.apache.activemq.command.TransactionId;
v = new org.apache.activemq.command.MessageId;
specialinvoke v.<org.apache.activemq.command.MessageId: void <init>(java.lang.String)>(v);
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.Map dispatchedMessage>;
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v != 0 goto label;
return null;
label:
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.Map dispatchedMessage>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = virtualinvoke v.<org.apache.activemq.transport.stomp.StompAckEntry: java.lang.String getAckId()>();
if v == null goto label;
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.Map pendingAcks>;
v = virtualinvoke v.<org.apache.activemq.transport.stomp.StompAckEntry: java.lang.String getAckId()>();
interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
label:
v = new org.apache.activemq.command.MessageAck;
specialinvoke v.<org.apache.activemq.command.MessageAck: void <init>()>();
v = v.<org.apache.activemq.transport.stomp.StompSubscription: org.apache.activemq.command.ConsumerInfo consumerInfo>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setDestination(org.apache.activemq.command.ActiveMQDestination)>(v);
v = v.<org.apache.activemq.transport.stomp.StompSubscription: org.apache.activemq.command.ConsumerInfo consumerInfo>;
v = virtualinvoke v.<org.apache.activemq.command.ConsumerInfo: org.apache.activemq.command.ConsumerId getConsumerId()>();
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setConsumerId(org.apache.activemq.command.ConsumerId)>(v);
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setAckType(byte)>(1);
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setMessageID(org.apache.activemq.command.MessageId)>(v);
if v == null goto label;
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.LinkedList transactedMessages>;
virtualinvoke v.<java.util.LinkedList: boolean add(java.lang.Object)>(v);
virtualinvoke v.<org.apache.activemq.command.MessageAck: void setTransactionId(org.apache.activemq.command.TransactionId)>(v);
goto label;
label:
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.util.Map dispatchedMessage>;
interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
label:
return v;
}
public java.lang.String getAckMode()
{
java.lang.String v;
org.apache.activemq.transport.stomp.StompSubscription v;
v := @this: org.apache.activemq.transport.stomp.StompSubscription;
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.lang.String ackMode>;
return v;
}
public void setAckMode(java.lang.String)
{
java.lang.String v;
org.apache.activemq.transport.stomp.StompSubscription v;
v := @this: org.apache.activemq.transport.stomp.StompSubscription;
v := @parameter: java.lang.String;
v.<org.apache.activemq.transport.stomp.StompSubscription: java.lang.String ackMode> = v;
return;
}
public boolean isAutoAck()
{
java.lang.String v;
boolean v;
org.apache.activemq.transport.stomp.StompSubscription v;
v := @this: org.apache.activemq.transport.stomp.StompSubscription;
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.lang.String ackMode>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("auto");
return v;
}
public boolean isClientAck()
{
java.lang.String v;
boolean v;
org.apache.activemq.transport.stomp.StompSubscription v;
v := @this: org.apache.activemq.transport.stomp.StompSubscription;
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.lang.String ackMode>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("client");
return v;
}
public boolean isIndividualAck()
{
java.lang.String v;
boolean v;
org.apache.activemq.transport.stomp.StompSubscription v;
v := @this: org.apache.activemq.transport.stomp.StompSubscription;
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.lang.String ackMode>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("client-individual");
return v;
}
public java.lang.String getSubscriptionId()
{
java.lang.String v;
org.apache.activemq.transport.stomp.StompSubscription v;
v := @this: org.apache.activemq.transport.stomp.StompSubscription;
v = v.<org.apache.activemq.transport.stomp.StompSubscription: java.lang.String subscriptionId>;
return v;
}
public void setDestination(org.apache.activemq.command.ActiveMQDestination)
{
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.transport.stomp.StompSubscription v;
v := @this: org.apache.activemq.transport.stomp.StompSubscription;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v.<org.apache.activemq.transport.stomp.StompSubscription: org.apache.activemq.command.ActiveMQDestination destination> = v;
return;
}
public org.apache.activemq.command.ActiveMQDestination getDestination()
{
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.transport.stomp.StompSubscription v;
v := @this: org.apache.activemq.transport.stomp.StompSubscription;
v = v.<org.apache.activemq.transport.stomp.StompSubscription: org.apache.activemq.command.ActiveMQDestination destination>;
return v;
}
public org.apache.activemq.command.ConsumerInfo getConsumerInfo()
{
org.apache.activemq.command.ConsumerInfo v;
org.apache.activemq.transport.stomp.StompSubscription v;
v := @this: org.apache.activemq.transport.stomp.StompSubscription;
v = v.<org.apache.activemq.transport.stomp.StompSubscription: org.apache.activemq.command.ConsumerInfo consumerInfo>;
return v;
}
static void <clinit>()
{
org.apache.activemq.util.IdGenerator v;
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/activemq/transport/stomp/StompSubscription;");
<org.apache.activemq.transport.stomp.StompSubscription: org.slf4j.Logger LOG> = v;
v = new org.apache.activemq.util.IdGenerator;
specialinvoke v.<org.apache.activemq.util.IdGenerator: void <init>()>();
<org.apache.activemq.transport.stomp.StompSubscription: org.apache.activemq.util.IdGenerator ACK_ID_GENERATOR> = v;
return;
}
}