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:
20: /**
21: *
22: */package org.netbeans.modules.bpel.model.api.support;
23:
24: import java.util.Iterator;
25:
26: import javax.xml.namespace.NamespaceContext;
27:
28: /**
29: * This interface is extension for standart J2SE NamespaceContext interface. It
30: * adds some function to existing for work with namespace.
31: *
32: * @author ads
33: */
34: public interface ExNamespaceContext extends NamespaceContext {
35:
36: /**
37: * @return All prefixes that exists in current context.
38: */
39: Iterator<String> getPrefixes();
40:
41: /**
42: * Adds new namespace to the context. If namesapce already exists then
43: * nothing will happen. One of its prefix will be return. If namespace
44: * doesn't exist then it will be added with generated automatically prefix
45: * and this prefix will be return. This namespace could be added at any
46: * scope that contains current element. This is up to implementation to
47: * determine place where namespace will be added.
48: *
49: * @param uri
50: * Uri of namespace.
51: * @return Prefix for added namespace.
52: * @throws InvalidNamespaceException
53: * Will be thrown if uri is not acceptable for namespace.
54: */
55: String addNamespace(String uri) throws InvalidNamespaceException;
56:
57: /**
58: * Adds new namespace to the context. Prefix passed as argument will be used
59: * for namespace. If such prefix already exist with other uri then
60: * InvalidNamespaceException will be thrown. If namespace declaration with
61: * specified prefix already exists then nothing will happen. If such prefix
62: * doesn't exist then new namespace declaration will be added. See previus
63: * method about scope for adding namespace.
64: *
65: * @param prefix Prefix that suppose to be set for namespace uri.
66: * @param uri Namespace uri that will be added in to namespaces declaration.
67: * @throws InvalidNamespaceException
68: * Will be thrown if uri is not acceptable for namespace, bad
69: * prefix is specified or prefix already exist.
70: */
71: void addNamespace(String prefix, String uri)
72: throws InvalidNamespaceException;
73: }
|