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.io.read;
018:
019: import org.apache.commons.betwixt.ElementDescriptor;
020: import org.xml.sax.Attributes;
021:
022: /**
023: * Describes a mapping between an xml element and a betwixt element.
024: *
025: * @author Robert Burrell Donkin
026: * @since 0.5
027: */
028: public class ElementMapping {
029:
030: /** Namespace of the xml element */
031: private String namespace;
032: /** Name of the element */
033: private String name;
034: /** Attributes associated with this element */
035: private Attributes attributes;
036: /** The base type of the mapped bean */
037: private Class type;
038: /** The mapped descriptor */
039: private ElementDescriptor descriptor;
040:
041: /** Base constructor */
042: public ElementMapping() {
043: }
044:
045: /**
046: * Gets the namespace URI or an empty string if the parser is not namespace aware
047: * or the element has no namespace.
048: * @return namespace possibly null
049: */
050: public String getNamespace() {
051: return namespace;
052: }
053:
054: /**
055: * Sets the namespace URI for this element
056: * @param namespace the namespace uri, possibly null
057: */
058: public void setNamespace(String namespace) {
059: this .namespace = namespace;
060: }
061:
062: /**
063: * Gets the local name if the parser is namespace aware, otherwise the name.
064: * @return the element name, possibly null
065: */
066: public String getName() {
067: return name;
068: }
069:
070: /**
071: * Sets the local name for this element.
072: * @param name the element name, possibly null
073: */
074: public void setName(String name) {
075: this .name = name;
076: }
077:
078: /**
079: * Gets the element's attributes.
080: * @return the Attributes for this element, possibly null.
081: */
082: public Attributes getAttributes() {
083: return attributes;
084: }
085:
086: /**
087: * Sets the element's attributes
088: * @param attributes the element's attributes, possibly null
089: */
090: public void setAttributes(Attributes attributes) {
091: this .attributes = attributes;
092: }
093:
094: /**
095: * Gets the base type for this element.
096: * The base type may - or may not - correspond to the created type.
097: * @return the Class of the base type for this element
098: */
099: public Class getType() {
100: return type;
101: }
102:
103: /**
104: * Sets the base type for this element.
105: * The base type may - or may not - correspond to the created type.
106: * @param type the Class of the base type for this element
107: */
108: public void setType(Class type) {
109: this .type = type;
110: }
111:
112: /**
113: * Gets the mapped element descriptor.
114: * @return the mapped ElementDescriptor
115: */
116: public ElementDescriptor getDescriptor() {
117: return descriptor;
118: }
119:
120: /**
121: * Sets the mapped element descriptor.
122: * @param descriptor set this descriptor
123: */
124: public void setDescriptor(ElementDescriptor descriptor) {
125: this .descriptor = descriptor;
126: }
127:
128: /**
129: * Returns something useful for logging.
130: * @since 0.8
131: */
132: public String toString() {
133: StringBuffer buffer = new StringBuffer();
134: buffer.append("ElementMapping[");
135: buffer.append(name);
136: buffer.append(" -> ");
137: buffer.append(type);
138: buffer.append("]");
139: return buffer.toString();
140: }
141: }
|