1 // $Id: SimilarTypeListModelEntry.java 167 2009-05-29 17:43:07Z agony $ 2 /* 3 * xsAnalyzer - XML schema analyzing tool. Copyright (C) 2008 Michael Engelhardt 4 * 5 * This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public 6 * License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later 7 * version. 8 * 9 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied 10 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 11 * 12 * You should have received a copy of the GNU General Public License along with this program; if not, write to the Free 13 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 14 */ 15 /** 16 * 17 */ 18 package de.mindcrimeilab.xsanalyzer.model; 19 20 import org.apache.commons.lang.builder.EqualsBuilder; 21 import org.apache.commons.lang.builder.HashCodeBuilder; 22 import org.apache.xerces.xs.XSObject; 23 import org.apache.xerces.xs.XSObjectList; 24 25 /** 26 * Represents an entry of the {@code SimilarTypesListModelAdapter}. 27 * 28 * @author Michael Engelhardt<me@mindcrime-ilab.de> 29 * @author $Author: agony $ 30 * @version $Revision: 167 $ 31 * 32 */ 33 public class SimilarTypeListModelEntry { 34 35 /** Type */ 36 private final XSObject type; 37 38 /** type signature as md5 hash */ 39 private final String typeSignature; 40 41 /** list of types which are similar to the value of the {@code type} property. */ 42 private final XSObjectList similarTypes; 43 44 /** 45 * ctor() 46 * 47 * @param type 48 * Type 49 * @param typeSignature 50 * signature of type 51 * @param similarTypes 52 * list of types which are similar to the type. 53 */ 54 public SimilarTypeListModelEntry(XSObject type, String typeDescription, XSObjectList similarTypes) { 55 super(); 56 this.type = type; 57 this.typeSignature = typeDescription; 58 this.similarTypes = similarTypes; 59 } 60 61 /* 62 * (non-Javadoc) 63 * 64 * @see java.lang.Object#equals(java.lang.Object) 65 */ 66 67 /** 68 * Returns type. 69 * 70 * @return the type 71 */ 72 public XSObject getType() { 73 return type; 74 } 75 76 /** 77 * Returns signature of type 78 * 79 * @return the typeSignature 80 */ 81 public String getTypeSignature() { 82 return typeSignature; 83 } 84 85 /** 86 * Returns list of types which are similar to type 87 * 88 * @return the similarTypes 89 */ 90 public XSObjectList getSimilarTypes() { 91 return similarTypes; 92 } 93 94 /* 95 * (non-Javadoc) 96 * 97 * @see java.lang.Object#equals(java.lang.Object) 98 */ 99 @Override 100 public boolean equals(Object object) { 101 if (null == object) return false; 102 if (!(object instanceof SimilarTypeListModelEntry)) return false; 103 SimilarTypeListModelEntry other = (SimilarTypeListModelEntry) object; 104 return new EqualsBuilder().append(this.similarTypes, other.getSimilarTypes()).append(this.type, other.getType()).append(this.typeSignature, other.getTypeSignature()).isEquals(); 105 } 106 107 /* 108 * (non-Javadoc) 109 * 110 * @see java.lang.Object#hashCode() 111 */ 112 @Override 113 public int hashCode() { 114 return new HashCodeBuilder().append(this.similarTypes).append(this.type).append(this.typeSignature).toHashCode(); 115 } 116 117 }