001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017: package org.apache.commons.betwixt;
018:
019: /** <p> Common superclass for <code>ElementDescriptor</code>
020: * and <code>AttributeDescriptor</code>.</p>
021: *
022: * <p> Nodes can have just a local name
023: * or they can have a local name, qualified name and a namespace uri.</p>
024: *
025: * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
026: * @version $Revision: 438373 $
027: */
028: public class NodeDescriptor extends Descriptor {
029:
030: /** The local name of this node without any namespace prefix */
031: private String localName;
032: /** The qualified name of the xml node associated with this descriptor. */
033: private String qualifiedName;
034: /** The namespace URI of this node */
035: private String uri = "";
036:
037: /** Base constructor */
038: public NodeDescriptor() {
039: }
040:
041: /**
042: * Creates a NodeDescriptor with no namespace URI or prefix.
043: *
044: * @param localName the (xml) local name of this node.
045: * This will be used to set both qualified and local name for this name.
046: */
047: public NodeDescriptor(String localName) {
048: this .localName = localName;
049: this .qualifiedName = localName;
050: }
051:
052: /**
053: * Creates a NodeDescriptor with namespace URI and qualified name
054: * @param localName the (xml) local name of this node
055: * @param qualifiedName the (xml) qualified name of this node
056: * @param uri the (xml) namespace prefix of this node
057: */
058: public NodeDescriptor(String localName, String qualifiedName,
059: String uri) {
060: this .localName = localName;
061: this .qualifiedName = qualifiedName;
062: this .uri = uri;
063: }
064:
065: /**
066: * Gets the local name, excluding any namespace prefix
067: * @return the (xml) local name of this node
068: */
069: public String getLocalName() {
070: return localName;
071: }
072:
073: /**
074: * Sets the local name
075: * @param localName the (xml) local name of this node
076: */
077: public void setLocalName(String localName) {
078: this .localName = localName;
079: }
080:
081: /**
082: * Gets the qualified name, including any namespace prefix
083: * @return the (xml) qualified name of this node. This may be null.
084: */
085: public String getQualifiedName() {
086: if (qualifiedName == null) {
087: qualifiedName = localName;
088: }
089: return qualifiedName;
090: }
091:
092: /**
093: * Sets the qualified name
094: * @param qualifiedName the new (xml) qualified name for this node
095: */
096: public void setQualifiedName(String qualifiedName) {
097: this .qualifiedName = qualifiedName;
098: }
099:
100: /**
101: * Gets the (xml) namespace URI prefix for this node.
102: * @return the namespace URI that this node belongs to
103: * or "" if there is no namespace defined
104: */
105: public String getURI() {
106: return uri;
107: }
108:
109: /**
110: * Sets the namespace URI that this node belongs to.
111: * @param uri the new namespace uri for this node
112: */
113: public void setURI(String uri) {
114: if (uri == null) {
115: throw new IllegalArgumentException(
116: "The namespace URI cannot be null. "
117: + "No namespace URI is specified with the empty string");
118: }
119: this.uri = uri;
120: }
121: }
|