blob: 56e175b5898a8b79a1c739302892267b1cb4d5d8 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.uima.util;
/**
* A class that stores the name of an attribute and the Class of that attribute's value.
*
*
*/
public class NameClassPair implements java.io.Serializable {
private static final long serialVersionUID = 3235061764523410003L;
/**
* A name
*/
private String mName;
/**
* A class name
*/
private String mClassName;
/**
* Creates a new <code>NameClassPair</code> with the specified name and class.
*
* @param aName
* the name of an attribute
* @param aClassName
* the name of the class of that attribute's value
*/
public NameClassPair(String aName, String aClassName) {
mName = aName;
mClassName = aClassName;
}
/**
* Gets the name of the attribute.
*
* @return the name
*/
public String getName() {
return mName;
}
/**
* Gets the class name of the attribute's value.
*
* @return the class name
*/
public String getClassName() {
return mClassName;
}
/**
* Determines if two NameClassPairs are equal. Two NameClassPairs are equal if both their Name and
* ClassName properties are equal.
*
* @return the class name
*/
public boolean equals(Object aObj) {
if (!(aObj instanceof NameClassPair)) {
return false;
}
NameClassPair that = (NameClassPair) aObj;
boolean nameMatch = this.getName() == null ? that.getName() == null : this.getName().equals(
that.getName());
boolean classNameMatch = this.getClassName() == null ? that.getClassName() == null : this
.getClassName().equals(that.getClassName());
return nameMatch && classNameMatch;
}
/**
* Gets the hash code for this object. The hash codes of two NameClassPairs <code>x</code> and
* </code>y</code> must be equal if <code>x.equals(y)</code> returns true;
*
* @return the hash code for this object
*/
public int hashCode() {
// add the hash codes of the Name and ClassName properties
int result = 0;
if (mName != null) {
result += mName.hashCode();
}
if (mClassName != null) {
result += mClassName.hashCode();
}
return result;
}
/**
* Gets string representation of this object; useful for debugging.
*
* @return string representation of this object
*/
public String toString() {
return "(" + mName + "," + mClassName + ")";
}
}