1 package org.jbpm.bpel.service.exe; 2 3 import java.util.HashMap ; 4 import java.util.Map ; 5 6 import javax.xml.namespace.QName ; 7 8 import org.jbpm.bpel.service.def.PartnerLinkDefinition; 9 import org.jbpm.bpel.service.def.Receiver; 10 11 15 public class PartnerLinkInstance { 16 17 private PartnerLinkDefinition definition; 18 private ServiceReference partnerReference; 19 private Map outstandingRequests = new HashMap (); 20 21 public PartnerLinkInstance() { 22 } 23 24 public PartnerLinkDefinition getDefinition() { 25 return definition; 26 } 27 28 public void setDefinition(PartnerLinkDefinition definition) { 29 this.definition = definition; 30 } 31 32 public ServiceReference getPartnerReference() { 33 return partnerReference; 34 } 35 36 public void setPartnerReference(ServiceReference partnerReference) { 37 this.partnerReference = partnerReference; 38 } 39 40 public void registerRequest(OutstandingRequest request) { 41 Receiver receiver = request.getReceiver(); 42 String operation = receiver.getOperation().getName(); 43 String messageExchange = receiver.getMessageExchange(); 44 QName requestName = createRequestName(operation, messageExchange); 45 if (outstandingRequests.containsKey(requestName)) { 46 throw new RuntimeException ("Conflicting request: partnerLink=" + definition.getName() + 47 ", operation=" + operation + ", messageExchange=" + messageExchange); 48 } 49 outstandingRequests.put(requestName, request); 50 } 51 52 public OutstandingRequest unregisterRequest(String operation, String messageExchange) { 53 QName requestName = createRequestName(operation, messageExchange); 54 OutstandingRequest request = (OutstandingRequest) outstandingRequests.remove(requestName); 55 if (request == null) { 56 throw new RuntimeException ("Missing request: partnerLink=" + definition.getName() + 57 ", operation=" + operation + ", messageExchange=" + messageExchange); 58 } 59 return request; 60 } 61 62 private static QName createRequestName(String operation, String messageExchange) { 63 return new QName (messageExchange, operation); 65 } 66 } 67 | Popular Tags |