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
018 package org.apache.commons.betwixt.schema;
019
020 import org.apache.commons.betwixt.AttributeDescriptor;
021
022
023 /**
024 * Models the attribute element in an XML schema.
025 * @author <a href='http://commons.apache.org/'>Apache Commons Team</a>
026 * @version $Revision: 561314 $
027 */
028 public class Attribute {
029
030 private String name;
031 private String type;
032
033
034 public Attribute() {}
035
036 public Attribute(String name, String type) {
037 setName(name);
038 setType(type);
039 }
040
041 public Attribute(AttributeDescriptor attributeDescriptor) {
042 this(attributeDescriptor.getQualifiedName(),"xsd:string");
043 }
044
045
046 /**
047 * Gets the attribute name
048 * @return name of this attribute, not null
049 */
050 public String getName() {
051 return name;
052 }
053
054 /**
055 * Sets the attribute name
056 * @param string the name for this attribute, not null
057 */
058 public void setName(String string) {
059 name = string;
060 }
061
062 /**
063 * Gets the attribute type
064 * @return the type of this attribute
065 */
066 public String getType() {
067 return type;
068 }
069
070 /**
071 * Sets the attribute type
072 * @param string the attribute type
073 */
074 public void setType(String string) {
075 type = string;
076 }
077
078 public int hashCode() {
079 return 0;
080 }
081
082 public boolean equals(Object obj) {
083 boolean result = false;
084 if (obj instanceof Attribute) {
085 Attribute attribute = (Attribute) obj;
086 result = isEqual(type, attribute.type) &&
087 isEqual(name, attribute.name);
088 }
089 return result;
090 }
091
092 /**
093 * Null safe equals method
094 * @param one
095 * @param two
096 * @return
097 */
098 private boolean isEqual(String one, String two) {
099 boolean result = false;
100 if (one == null) {
101 result = (two == null);
102 }
103 else
104 {
105 result = one.equals(two);
106 }
107
108 return result;
109 }
110
111 public String toString() {
112 return "<xsd:attribute name='" + name + "' type='" + type + "'/>";
113 }
114
115 }