01: /*
02: * The contents of this file are subject to the terms of the Common Development
03: * and Distribution License (the License). You may not use this file except in
04: * compliance with the License.
05: *
06: * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
07: * or http://www.netbeans.org/cddl.txt.
08: *
09: * When distributing Covered Code, include this CDDL Header Notice in each file
10: * and include the License file at http://www.netbeans.org/cddl.txt.
11: * If applicable, add the following below the CDDL Header, with the fields
12: * enclosed by brackets [] replaced by your own identifying information:
13: * "Portions Copyrighted [year] [name of copyright owner]"
14: *
15: * The Original Software is NetBeans. The Initial Developer of the Original
16: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
17: * Microsystems, Inc. All Rights Reserved.
18: */
19: package org.netbeans.modules.xslt.tmap.model.api;
20:
21: import java.util.Iterator;
22: import javax.xml.namespace.NamespaceContext;
23: import org.netbeans.modules.xslt.tmap.model.impl.InvalidNamespaceException;
24:
25: /**
26: *
27: * @author ads
28: * @author Vitaly Bychkov
29: * @version 1.0
30: */
31: public interface ExNamespaceContext extends NamespaceContext {
32: /**
33: * @return All prefixes that exists in current context.
34: */
35: Iterator<String> getPrefixes();
36:
37: /**
38: * Adds new namespace to the context. If namesapce already exists then
39: * nothing will happen. One of its prefix will be return. If namespace
40: * doesn't exist then it will be added with generated automatically prefix
41: * and this prefix will be return. This namespace could be added at any
42: * scope that contains current element. This is up to implementation to
43: * determine place where namespace will be added.
44: *
45: * @param uri
46: * Uri of namespace.
47: * @return Prefix for added namespace.
48: * @throws InvalidNamespaceException
49: * Will be thrown if uri is not acceptable for namespace.
50: */
51: String addNamespace(String uri) throws InvalidNamespaceException;
52:
53: /**
54: * Adds new namespace to the context. Prefix passed as argument will be used
55: * for namespace. If such prefix already exist with other uri then
56: * InvalidNamespaceException will be thrown. If namespace declaration with
57: * specified prefix already exists then nothing will happen. If such prefix
58: * doesn't exist then new namespace declaration will be added. See previus
59: * method about scope for adding namespace.
60: *
61: * @param prefix Prefix that suppose to be set for namespace uri.
62: * @param uri Namespace uri that will be added in to namespaces declaration.
63: * @throws InvalidNamespaceException
64: * Will be thrown if uri is not acceptable for namespace, bad
65: * prefix is specified or prefix already exist.
66: */
67: void addNamespace(String prefix, String uri)
68: throws InvalidNamespaceException;
69:
70: }
|