KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jbpm > bpel > service > exe > PartnerLinkInstance


1 package org.jbpm.bpel.service.exe;
2
3 import java.util.HashMap JavaDoc;
4 import java.util.Map JavaDoc;
5
6 import javax.xml.namespace.QName JavaDoc;
7
8 import org.jbpm.bpel.service.def.PartnerLinkDefinition;
9 import org.jbpm.bpel.service.def.Receiver;
10
11 /**
12  * @author Alejandro Guízar
13  * @version $Revision: 1.5 $ $Date: 2005/05/17 19:02:46 $
14  */

15 public class PartnerLinkInstance {
16   
17   private PartnerLinkDefinition definition;
18   private ServiceReference partnerReference;
19   private Map JavaDoc outstandingRequests = new HashMap JavaDoc();
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 JavaDoc operation = receiver.getOperation().getName();
43     String JavaDoc messageExchange = receiver.getMessageExchange();
44     QName JavaDoc requestName = createRequestName(operation, messageExchange);
45     if (outstandingRequests.containsKey(requestName)) {
46       throw new RuntimeException JavaDoc("Conflicting request: partnerLink=" + definition.getName() +
47           ", operation=" + operation + ", messageExchange=" + messageExchange);
48     }
49     outstandingRequests.put(requestName, request);
50   }
51   
52   public OutstandingRequest unregisterRequest(String JavaDoc operation, String JavaDoc messageExchange) {
53     QName JavaDoc requestName = createRequestName(operation, messageExchange);
54     OutstandingRequest request = (OutstandingRequest) outstandingRequests.remove(requestName);
55     if (request == null) {
56       throw new RuntimeException JavaDoc("Missing request: partnerLink=" + definition.getName() +
57           ", operation=" + operation + ", messageExchange=" + messageExchange);
58     }
59     return request;
60   }
61   
62   private static QName JavaDoc createRequestName(String JavaDoc operation, String JavaDoc messageExchange) {
63     // message exchange might be empty, while operation is always non-empty
64
return new QName JavaDoc(messageExchange, operation);
65   }
66 }
67
Popular Tags