dnet-core/dnet-core-components/src/main/java/eu/dnetlib/enabling/tools/AbstractServiceResolverImpl...

33 lines
935 B
Java

package eu.dnetlib.enabling.tools;
import javax.xml.transform.dom.DOMResult;
import javax.xml.ws.wsaddressing.W3CEndpointReference;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
/**
* implement common functionality of ServiceResolvers.
*
* @author marko
*
*/
public abstract class AbstractServiceResolverImpl implements ServiceResolver {
/**
* {@inheritDoc}
* @see eu.dnetlib.enabling.tools.ServiceResolver#getResourceIdentifier(javax.xml.ws.wsaddressing.W3CEndpointReference)
*/
@Override
public String getResourceIdentifier(final W3CEndpointReference epr) {
final DOMResult dom = new DOMResult();
epr.writeTo(dom);
try {
return XPathFactory.newInstance().newXPath().evaluate("//*[local-name() = 'ResourceIdentifier']", dom.getNode());
} catch (XPathExpressionException e) {
throw new IllegalStateException("cannot construct xpath expression", e);
}
}
}