ingo@113: /*
ingo@113:  * Copyright (c) 2010 by Intevation GmbH
ingo@113:  *
ingo@113:  * This program is free software under the LGPL (>=v2.1)
ingo@113:  * Read the file LGPL.txt coming with the software for details
ingo@113:  * or visit http://www.gnu.org/licenses/ if it does not exist.
ingo@113:  */
ingo@113: 
ingo@113: package de.intevation.artifacts.common;
ingo@113: 
ingo@113: import java.util.Iterator;
ingo@113: 
ingo@113: import javax.xml.XMLConstants;
ingo@113: 
ingo@113: import javax.xml.namespace.NamespaceContext;
ingo@113: 
ingo@113: /**
ingo@113:  * The namespace used in artifact documents.
ingo@113:  * @author <a href="mailto:sascha.teichmann@intevation">Sascha L. Teichmann</a>
ingo@113:  */
ingo@113: public class ArtifactNamespaceContext
ingo@113: implements   NamespaceContext
ingo@113: {
ingo@113:     /**
ingo@113:      * The URI of the namespace of the artifacts.
ingo@113:      */
ingo@113:     public final static String NAMESPACE_URI =
ingo@113:         "http://www.intevation.de/2009/artifacts";
ingo@113: 
ingo@113:     /**
ingo@113:      * The XML prefix for the artifacts namespace.
ingo@113:      */
ingo@113:     public final static String NAMESPACE_PREFIX = "art";
ingo@113: 
ingo@113:     /**
ingo@113:      * Final instance to be easily used to avoid creation
ingo@113:      * of instances.
ingo@113:      */
ingo@113:     public static final ArtifactNamespaceContext INSTANCE =
ingo@113:         new ArtifactNamespaceContext();
ingo@113: 
ingo@113:     /**
ingo@113:      * The default constructor.
ingo@113:      */
ingo@113:     public ArtifactNamespaceContext() {
ingo@113:     }
ingo@113: 
ingo@113:     /**
ingo@113:      * @see javax.xml.namespace.NamespaceContext#getNamespaceURI(String)
ingo@113:      * @param prefix The prefix
ingo@113:      * @return The corresponing URI
ingo@113:      */
ingo@113:     public String getNamespaceURI(String prefix) {
ingo@113: 
ingo@113:         if (prefix == null) {
ingo@113:             throw new NullPointerException("Null prefix");
ingo@113:         }
ingo@113: 
ingo@113:         if (NAMESPACE_PREFIX.equals(prefix)) {
ingo@113:             return NAMESPACE_URI;
ingo@113:         }
ingo@113: 
ingo@113:         if ("xml".equals(prefix)) {
ingo@113:             return XMLConstants.XML_NS_URI;
ingo@113:         }
ingo@113: 
ingo@113:         return XMLConstants.NULL_NS_URI;
ingo@113:     }
ingo@113: 
ingo@113:     /**
ingo@113:      * @see javax.xml.namespace.NamespaceContext#getPrefix(String)
ingo@113:      * @param uri The URI
ingo@113:      * @return nothing.
ingo@113:      * @throws java.lang.UnsupportedOperationException
ingo@113:      */
ingo@113:     public String getPrefix(String uri) {
ingo@113:         throw new UnsupportedOperationException();
ingo@113:     }
ingo@113: 
ingo@113:     /**
ingo@113:      * @see javax.xml.namespace.NamespaceContext#getPrefixes(java.lang.String)
ingo@113:      * @param uri The URI
ingo@113:      * @return nothing
ingo@113:      * @throws java.lang.UnsupportedOperationException
ingo@113:      */
ingo@113:     public Iterator getPrefixes(String uri) {
ingo@113:         throw new UnsupportedOperationException();
ingo@113:     }
ingo@113: }
ingo@113: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :