blob: 88988c617a9a38e2dcbd65db3484f19fa847785c [file] [log] [blame]
/*
* 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 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 String toString() {
return "mem.mex(direction=" + direction + " id=" + messageExchangeId + ")";
}
}