com.arjuna.webservices11.wsarj.InstanceIdentifier Maven / Gradle / Ivy
/*
* JBoss, Home of Professional Open Source
* Copyright 2006, Red Hat Middleware LLC, and individual contributors
* as indicated by the @author tags.
* See the copyright.txt in the distribution for a full listing
* of individual contributors.
* This copyrighted material is made available to anyone wishing to use,
* modify, copy, or redistribute it subject to the terms and conditions
* of the GNU Lesser General Public License, v. 2.1.
* This program is distributed in the hope that it will be useful, but WITHOUT A
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General Public License,
* v.2.1 along with this distribution; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
* (C) 2005-2006,
* @author JBoss Inc.
*/
package com.arjuna.webservices11.wsarj;
import org.w3c.dom.Element;
import javax.xml.soap.Name;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPFactory;
import javax.xml.ws.wsaddressing.W3CEndpointReferenceBuilder;
import com.arjuna.webservices.wsarj.ArjunaConstants;
import org.jboss.ws.api.addressing.MAPEndpoint;
/**
* Representation of an InstanceIdentifier element.
* @author kevin
*/
public class InstanceIdentifier
{
/**
* The instance identifier.
*/
private String instanceIdentifier ;
/**
* Default constructor.
*/
public InstanceIdentifier()
{
}
/**
* Construct an instance identifier with the specific identifier
* @param instanceIdentifier The instance identifier.
*/
public InstanceIdentifier(final String instanceIdentifier)
{
this.instanceIdentifier = instanceIdentifier ;
}
/**
* Set the instance identifier of this element.
* @param instanceIdentifier The instance identifier of the element.
*/
public void setInstanceIdentifier(final String instanceIdentifier)
{
this.instanceIdentifier = instanceIdentifier ;
}
/**
* Get the instance identifier of this element.
* @return The instance identifier of the element or null if not set.
*/
public String getInstanceIdentifier()
{
return instanceIdentifier ;
}
/**
* Is the configuration of this element valid?
* @return true if valid, false otherwise.
*/
public boolean isValid()
{
return (instanceIdentifier != null) && (instanceIdentifier.trim().length() > 0);
}
/**
* Get a string representation of this instance identifier.
* @return the string representation.
*/
public String toString()
{
return (instanceIdentifier != null ? instanceIdentifier : "") ;
}
/**
* Set the identifier on a W3C endpoint reference under construction.
* @param builder The endpoint reference builder.
* @param identifier The identifier.
*/
public static void setEndpointInstanceIdentifier(final W3CEndpointReferenceBuilder builder, final String identifier)
{
builder.referenceParameter(createInstanceIdentifierElement(identifier));
}
/**
* Set the identifier on a W3C endpoint reference under construction.
* @param builder The endpoint reference builder.
* @param instanceIdentifier The identifier.
*/
public static void setEndpointInstanceIdentifier(final W3CEndpointReferenceBuilder builder, final InstanceIdentifier instanceIdentifier)
{
builder.referenceParameter(createInstanceIdentifierElement(instanceIdentifier.getInstanceIdentifier())) ;
}
/**
* Set the identifier on a WS Addressing endpoint reference under construction.
* @param epReference The WS Addressing endpoint reference.
* @param instanceIdentifier The identifier.
*/
public static void setEndpointInstanceIdentifier(final MAPEndpoint epReference, final InstanceIdentifier instanceIdentifier)
{
setEndpointInstanceIdentifier(epReference, instanceIdentifier.getInstanceIdentifier());
}
/**
* Set the identifier on a WS Addressing endpoint reference under construction.
* @param epReference The WS Addressing endpoint reference.
* @param instanceIdentifier The identifier string.
*/
public static void setEndpointInstanceIdentifier(final MAPEndpoint epReference, final String instanceIdentifier)
{
epReference.addReferenceParameter(createInstanceIdentifierElement(instanceIdentifier));
}
/**
* a soap factory used to construct SOAPElement instances representing InstanceIdentifier instances
*/
private static SOAPFactory factory = createSoapFactory();
/**
* a name for the WSArj Instance element
*/
private static Name WSARJ_ELEMENT_INSTANCE_NAME;
/**
* Create a SOAPElement representing an InstanceIdentifier
* @param instanceIdentifier the identifier string of the InstanceIdentifier being represented
* @return a SOAPElement with the InstancreIdentifier QName as its element tag and a text node containing the
* suppliedidentifier string as its value
*/
public static Element createInstanceIdentifierElement(final String instanceIdentifier)
{
try {
SOAPElement element = factory.createElement(WSARJ_ELEMENT_INSTANCE_NAME);
element.addNamespaceDeclaration(ArjunaConstants.WSARJ_PREFIX, ArjunaConstants.WSARJ_NAMESPACE);
element.addTextNode(instanceIdentifier);
return element;
} catch (SOAPException se) {
// TODO log error here (should never happen)
return null;
}
}
private static SOAPFactory createSoapFactory()
{
try {
SOAPFactory factory = SOAPFactory.newInstance();
Name name = factory.createName(ArjunaConstants.WSARJ_ELEMENT_INSTANCE_IDENTIFIER,
ArjunaConstants.WSARJ_PREFIX,
ArjunaConstants.WSARJ_NAMESPACE);
WSARJ_ELEMENT_INSTANCE_NAME = name;
return factory;
} catch (SOAPException e) {
// TODO log error here (should never happen)
}
return null;
}
}