blob: 77b731a0376215e61229423481ceb03ebbb64923 [file] [log] [blame]
/*
* Copyright 2004 The Apache Software Foundation.
*
* Licensed 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.kandula.context.impl;
import javax.xml.namespace.QName;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.soap.SOAPFactory;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.kandula.Constants;
import org.apache.kandula.context.CoordinationContext;
import org.apache.kandula.utility.EndpointReferenceFactory;
public class SimpleCoordinationContext implements CoordinationContext {
private String activityID;
private OMElement contextElement = null;
private String coordinationType;
private long expires;
private EndpointReference registrationServiceEpr;
public SimpleCoordinationContext(OMElement contextElement) {
super();
this.contextElement = contextElement;
activityID = contextElement.getFirstChildWithName(
new QName("Identifier")).getText();
coordinationType = contextElement.getFirstChildWithName(
new QName("CoordinationType")).getText();
OMElement registrationElement = contextElement
.getFirstChildWithName(new QName("RegistrationService"));
registrationServiceEpr = EndpointReferenceFactory
.endpointFromOM(registrationElement);
}
public SimpleCoordinationContext(String activityID,
String coordinationType, EndpointReference epr) {
this.activityID = activityID;
this.coordinationType = coordinationType;
this.registrationServiceEpr = epr;
}
public String getActivityID() {
return activityID;
}
public Object getCoordinationContextType() {
return this;
}
public String getCoordinationType() {
return coordinationType;
}
public long getExpires() {
return expires;
}
public EndpointReference getRegistrationService() {
return this.registrationServiceEpr;
}
public void setActivityID(String value) {
this.activityID = value;
}
public void setCoordinationType(String value) {
this.coordinationType = value;
}
public void setExpires(long value) {
this.expires = value;
}
public void setRegistrationService(EndpointReference epr) {
this.registrationServiceEpr = epr;
}
public OMElement toOM() {
if (contextElement != null) {
return contextElement;
} else {
SOAPFactory factory = OMAbstractFactory.getSOAP12Factory();
OMNamespace wsCoor = factory.createOMNamespace(Constants.WS_COOR,
"wscoor");
OMElement contextElement = factory.createOMElement(
"CoordinationContext", wsCoor);
if (this.expires != 0) {
OMElement expiresElement = factory.createOMElement("Expires",
wsCoor);
expiresElement.setText(Long.toString(this.expires));
contextElement.addChild(expiresElement);
}
OMElement identifierElement = factory.createOMElement("Identifier",
wsCoor);
identifierElement.setText(this.activityID);
contextElement.addChild(identifierElement);
OMElement coorTypeElement = factory.createOMElement(
"CoordinationType", wsCoor);
coorTypeElement.setText(this.coordinationType);
contextElement.addChild(coorTypeElement);
OMElement registrationServiceElement = factory.createOMElement(
"RegistrationService", wsCoor);
EndpointReferenceFactory.endpointToOM(registrationServiceEpr,
registrationServiceElement, factory);
contextElement.addChild(registrationServiceElement);
return contextElement;
}
}
}