From b1c8641a63a67e3c64d948f9e8dce5c01e11e2dd Mon Sep 17 00:00:00 2001 From: mcentner Date: Wed, 5 May 2010 15:29:01 +0000 Subject: Merged feature branch mocca-1.2.13-id@r724 back to trunk. git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@725 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4 --- .../slcommands/impl/xsect/LocRefDereferencer.java | 189 ++++++++++----------- 1 file changed, 93 insertions(+), 96 deletions(-) (limited to 'bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/xsect/LocRefDereferencer.java') diff --git a/bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/xsect/LocRefDereferencer.java b/bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/xsect/LocRefDereferencer.java index f5394157..e513738c 100644 --- a/bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/xsect/LocRefDereferencer.java +++ b/bkucommon/src/main/java/at/gv/egiz/bku/slcommands/impl/xsect/LocRefDereferencer.java @@ -14,99 +14,96 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package at.gv.egiz.bku.slcommands.impl.xsect; - -import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; - -import javax.xml.crypto.Data; -import javax.xml.crypto.OctetStreamData; -import javax.xml.crypto.URIDereferencer; -import javax.xml.crypto.URIReference; -import javax.xml.crypto.URIReferenceException; -import javax.xml.crypto.XMLCryptoContext; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import at.gv.egiz.bku.utils.urldereferencer.StreamData; -import at.gv.egiz.bku.utils.urldereferencer.URLDereferencer; -import at.gv.egiz.bku.utils.urldereferencer.URLDereferencerContext; - -/** - * An URIDereferencer implementation that dereferences LocRef - * references. - * - * @author mcentner - */ -public class LocRefDereferencer implements URIDereferencer { - - /** - * Logging facility. - */ - private static Log log = LogFactory.getLog(LocRefDereferencer.class); - - /** - * The LocRef-reference to be dereferenced by - * {@link #dereference(URIReference, XMLCryptoContext)}. - */ - protected String locRef; - - /** - * The context to be used for dereferencing. - */ - protected URLDereferencerContext dereferencerContext; - - /** - * Creates a new instance of this LocRefDereferencer with the given - * dereferencerContext and locRef reference. - * - * @param dereferencerContext - * the context to be used for dereferencing - * @param locRef - * the LocRef-reference (must be an absolute URI) - * - * @throws URISyntaxException - * if LocRef is not an absolute URI - */ - public LocRefDereferencer(URLDereferencerContext dereferencerContext, - String locRef) throws URISyntaxException { - - this.dereferencerContext = dereferencerContext; - - URI locRefUri = new URI(locRef); - if (locRefUri.isAbsolute()) { - this.locRef = locRef; - } else { - throw new IllegalArgumentException( - "Parameter 'locRef' must be an absolut URI."); - } - } - - /* - * (non-Javadoc) - * - * @see - * javax.xml.crypto.URIDereferencer#dereference(javax.xml.crypto.URIReference, - * javax.xml.crypto.XMLCryptoContext) - */ - @Override - public Data dereference(URIReference uriReference, XMLCryptoContext context) - throws URIReferenceException { - - URLDereferencer dereferencer = URLDereferencer.getInstance(); - StreamData streamData; - try { - streamData = dereferencer.dereference(locRef, dereferencerContext); - } catch (IOException e) { - log.info("Failed to dereference URI'" + locRef + "'. " + e.getMessage(), - e); - throw new URIReferenceException("Failed to dereference URI '" + locRef - + "'. " + e.getMessage(), e); - } - return new OctetStreamData(streamData.getStream(), locRef, streamData - .getContentType()); - } - -} +package at.gv.egiz.bku.slcommands.impl.xsect; + +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; + +import javax.xml.crypto.Data; +import javax.xml.crypto.OctetStreamData; +import javax.xml.crypto.URIDereferencer; +import javax.xml.crypto.URIReference; +import javax.xml.crypto.URIReferenceException; +import javax.xml.crypto.XMLCryptoContext; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import at.gv.egiz.bku.utils.urldereferencer.StreamData; +import at.gv.egiz.bku.utils.urldereferencer.URLDereferencer; + +/** + * An URIDereferencer implementation that dereferences LocRef + * references. + * + * @author mcentner + */ +public class LocRefDereferencer implements URIDereferencer { + + /** + * Logging facility. + */ + private final Logger log = LoggerFactory.getLogger(LocRefDereferencer.class); + + /** + * The LocRef-reference to be dereferenced by + * {@link #dereference(URIReference, XMLCryptoContext)}. + */ + protected String locRef; + + /** + * The URLDereferencer to be used for dereferencing. + */ + protected URLDereferencer dereferencer; + + /** + * Creates a new instance of this LocRefDereferencer with the given + * dereferencerContext and locRef reference. + * + * @param dereferencer + * the context to be used for dereferencing + * @param locRef + * the LocRef-reference (must be an absolute URI) + * + * @throws URISyntaxException + * if LocRef is not an absolute URI + */ + public LocRefDereferencer(URLDereferencer dereferencer, + String locRef) throws URISyntaxException { + + this.dereferencer = dereferencer; + + URI locRefUri = new URI(locRef); + if (locRefUri.isAbsolute()) { + this.locRef = locRef; + } else { + throw new IllegalArgumentException( + "Parameter 'locRef' must be an absolut URI."); + } + } + + /* + * (non-Javadoc) + * + * @see + * javax.xml.crypto.URIDereferencer#dereference(javax.xml.crypto.URIReference, + * javax.xml.crypto.XMLCryptoContext) + */ + @Override + public Data dereference(URIReference uriReference, XMLCryptoContext context) + throws URIReferenceException { + + StreamData streamData; + try { + streamData = dereferencer.dereference(locRef); + } catch (IOException e) { + log.info("Failed to dereference URI '{}'.", locRef, e); + throw new URIReferenceException("Failed to dereference URI '" + locRef + + "'. " + e.getMessage(), e); + } + return new OctetStreamData(streamData.getStream(), locRef, streamData + .getContentType()); + } + +} -- cgit v1.2.3