1 46 47 package org.mr.api.jms; 48 49 import java.io.IOException ; 50 import java.util.Collection ; 51 52 import org.mr.core.util.byteable.Byteable; 53 import org.mr.core.util.byteable.ByteableByteArray; 54 import org.mr.core.util.byteable.ByteableInputStream; 55 import org.mr.core.util.byteable.ByteableList; 56 import org.mr.core.util.byteable.ByteableOutputStream; 57 import org.mr.core.util.byteable.ByteableRegistry; 58 59 64 65 public class MantaXADescriptor implements Byteable { 66 67 protected int status; 68 ByteableByteArray xidBytes; 69 ByteableList heldMessages; 70 ByteableList unackedMessages; 71 72 public MantaXADescriptor(ByteableByteArray xidBytes) { 73 this.xidBytes = xidBytes; 74 heldMessages = new ByteableList(); 75 unackedMessages = new ByteableList(); 76 } 77 78 private MantaXADescriptor() { 79 xidBytes = new ByteableByteArray(); 80 heldMessages = new ByteableList(); 81 unackedMessages = new ByteableList(); 82 } 83 84 ByteableByteArray getXidBytes() { 85 return xidBytes; 86 } 87 88 void setStatus(int newStatus) { 89 status = newStatus; 90 } 91 92 int getStatus() { 93 return status; 94 } 95 96 Collection getHeldMessages() { 97 return heldMessages; 98 } 99 100 void addHeldMessages(Collection messages) { 101 heldMessages.addAll(messages); 102 } 103 104 Collection getUnackedMessages() { 105 return unackedMessages; 106 } 107 108 void addUnackedMessages(Collection messages) { 109 unackedMessages.addAll(messages); 110 } 111 112 public String getByteableName() { 113 return "MantaXADescriptor"; 114 } 115 116 public void toBytes(ByteableOutputStream out) throws IOException { 117 xidBytes.toBytes(out); 118 heldMessages.toBytes(out); 119 unackedMessages.toBytes(out); 120 out.writeInt(status); 121 } 122 123 public Byteable createInstance(ByteableInputStream in) throws IOException { 124 MantaXADescriptor instance = new MantaXADescriptor(); 125 instance.xidBytes = (ByteableByteArray)instance.xidBytes.createInstance(in); 126 instance.heldMessages = (ByteableList)instance.heldMessages.createInstance(in); 127 instance.unackedMessages = (ByteableList)instance.unackedMessages.createInstance(in); 128 instance.status = in.readInt(); 129 return instance; 130 } 131 132 public void registerToByteableRegistry() { 133 ByteableRegistry.registerByteableFactory(getByteableName() , this); 134 } 135 136 public static void register(){ 137 MantaXADescriptor instance = new MantaXADescriptor(); 138 instance.registerToByteableRegistry(); 139 } 140 } | Popular Tags |