| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| |
| package org.apache.ode.bpel.memdao; |
| |
| import org.apache.ode.bpel.dao.MessageDAO; |
| import org.apache.ode.bpel.dao.MessageExchangeDAO; |
| import org.apache.ode.bpel.dao.PartnerLinkDAO; |
| import org.apache.ode.bpel.dao.ProcessDAO; |
| import org.apache.ode.bpel.dao.ProcessInstanceDAO; |
| import org.w3c.dom.Element; |
| |
| import javax.xml.namespace.QName; |
| import java.util.Date; |
| import java.util.HashSet; |
| import java.util.Map.Entry; |
| import java.util.Properties; |
| import java.util.Set; |
| |
| public class MessageExchangeDAOImpl extends DaoBaseImpl implements MessageExchangeDAO { |
| |
| private String messageExchangeId; |
| private MessageDAO response; |
| private Date createTime; |
| private MessageDAO request; |
| private String operation; |
| private QName portType; |
| private String status; |
| private int partnerLinkModelId; |
| private String correlationId; |
| private String pattern; |
| private Element ePR; |
| private Element callbackEPR; |
| private String channel; |
| private boolean propagateTransactionFlag; |
| private QName fault; |
| private String faultExplanation; |
| private String correlationStatus; |
| private ProcessDAO process; |
| private ProcessInstanceDAO instance; |
| private char direction; |
| private QName callee; |
| private Properties properties = new Properties(); |
| private PartnerLinkDAOImpl _plink; |
| private String pipedMessageExchangeId; |
| private int subscriberCount; |
| |
| public MessageExchangeDAOImpl(char direction, String messageEchangeId){ |
| this.direction = direction; |
| this.messageExchangeId = messageEchangeId; |
| } |
| |
| public String getMessageExchangeId() { |
| return messageExchangeId; |
| } |
| |
| public MessageDAO getResponse() { |
| return response; |
| } |
| |
| public Date getCreateTime() { |
| return createTime; |
| } |
| |
| public void setCreateTime(Date d) { |
| createTime = d; |
| } |
| |
| public MessageDAO getRequest() { |
| return request; |
| } |
| |
| public String getOperation() { |
| return operation; |
| } |
| |
| public QName getPortType() { |
| return portType; |
| } |
| |
| public void setPortType(QName porttype) { |
| this.portType = porttype; |
| |
| } |
| |
| public void setStatus(String status) { |
| this.status = status; |
| |
| } |
| |
| public String getStatus() { |
| return status; |
| } |
| |
| public MessageDAO createMessage(QName type) { |
| MessageDAO messageDAO = new MessageDAOImpl(this); |
| messageDAO.setType(type); |
| return messageDAO; |
| } |
| |
| public void setRequest(MessageDAO msg) { |
| this.request = msg; |
| |
| } |
| |
| public void setResponse(MessageDAO msg) { |
| this.response = msg; |
| |
| } |
| |
| public int getPartnerLinkModelId() { |
| return partnerLinkModelId; |
| } |
| |
| public void setPartnerLinkModelId(int modelId) { |
| this.partnerLinkModelId = modelId; |
| |
| } |
| |
| public String getCorrelationId() { |
| return correlationId; |
| } |
| |
| public void setCorrelationId(String correlationId) { |
| this.correlationId = correlationId; |
| |
| } |
| |
| public void setPattern(String string) { |
| this.pattern = string; |
| |
| } |
| |
| public void setOperation(String opname) { |
| this.operation = opname; |
| |
| } |
| |
| public void setEPR(Element epr) { |
| this.ePR = epr; |
| |
| } |
| |
| public Element getEPR() { |
| return ePR; |
| } |
| |
| public void setCallbackEPR(Element epr) { |
| this.callbackEPR = epr; |
| |
| } |
| |
| public Element getCallbackEPR() { |
| return callbackEPR; |
| } |
| |
| public String getPattern() { |
| return pattern; |
| } |
| |
| public String getChannel() { |
| return channel; |
| } |
| |
| public void setChannel(String string) { |
| this.channel = string; |
| } |
| |
| public boolean getPropagateTransactionFlag() { |
| return propagateTransactionFlag; |
| } |
| |
| public QName getFault() { |
| return fault; |
| } |
| |
| public void setFault(QName faultType) { |
| this.fault = faultType; |
| } |
| |
| public String getFaultExplanation() { |
| return faultExplanation; |
| } |
| |
| public void setFaultExplanation(String explanation) { |
| this.faultExplanation = explanation; |
| } |
| |
| |
| |
| public void setCorrelationStatus(String cstatus) { |
| this.correlationStatus = cstatus; |
| } |
| |
| public String getCorrelationStatus() { |
| return correlationStatus; |
| } |
| |
| public ProcessDAO getProcess() { |
| return process; |
| } |
| |
| public void setProcess(ProcessDAO process) { |
| this.process = process; |
| |
| } |
| |
| public void setInstance(ProcessInstanceDAO dao) { |
| this.instance = dao; |
| |
| } |
| |
| public ProcessInstanceDAO getInstance() { |
| return instance; |
| } |
| |
| public char getDirection() { |
| return direction; |
| } |
| |
| public QName getCallee() { |
| return callee; |
| } |
| |
| public void setCallee(QName callee) { |
| this.callee = callee; |
| |
| } |
| |
| public String getProperty(String key) { |
| return properties.getProperty(key); |
| } |
| |
| public void setProperty(String key, String value) { |
| properties.setProperty(key,value); |
| } |
| |
| public void setPartnerLink(PartnerLinkDAO plinkDAO) { |
| _plink = (PartnerLinkDAOImpl) plinkDAO; |
| |
| } |
| |
| public PartnerLinkDAO getPartnerLink() { |
| return _plink; |
| } |
| |
| public Set<String> getPropertyNames() { |
| HashSet<String> retVal = new HashSet<String>(); |
| for (Entry<Object,Object> e : properties.entrySet()) { |
| retVal.add((String)e.getKey()); |
| } |
| return retVal; |
| } |
| |
| public String getPipedMessageExchangeId() { |
| return pipedMessageExchangeId; |
| } |
| |
| public void setPipedMessageExchangeId(String pipedMessageExchangeId) { |
| this.pipedMessageExchangeId = pipedMessageExchangeId; |
| } |
| |
| public int getSubscriberCount() { |
| return subscriberCount; |
| } |
| |
| public void setSubscriberCount(int subscriberCount) { |
| this.subscriberCount = subscriberCount; |
| } |
| |
| public void incrementSubscriberCount() { |
| ++subscriberCount; |
| } |
| |
| public void release(boolean doClean) { |
| instance = null; |
| process = null; |
| _plink = null; |
| request = null; |
| response = null; |
| BpelDAOConnectionImpl.removeMessageExchange(getMessageExchangeId()); |
| } |
| |
| public void releasePremieMessages() { |
| // do nothing; early messages are deleted during CorrelatorDaoImpl().dequeueMessage() |
| } |
| |
| public String toString() { |
| return "mem.mex(direction=" + direction + " id=" + messageExchangeId + ")"; |
| } |
| |
| public boolean lockPremieMessages() { |
| return true; |
| } |
| } |