33 lines
935 B
Java
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);
|
|
}
|
|
}
|
|
|
|
}
|