Lookup.java |
1 /* 2 * Lookup.java 3 * 4 * Copyright (c) 1998-2005, The University of Sheffield. 5 * 6 * This file is part of GATE (see http://gate.ac.uk/), and is free 7 * software, licenced under the GNU Library General Public License, 8 * Version 2, June 1991 (in the distribution as file licence.html, 9 * and also available at http://gate.ac.uk/gate/licence.html). 10 * 11 * Valentin Tablan, 11/07/2000 12 * borislav popov, 05/02/2002 13 * 14 * $Id: Lookup.java,v 1.11 2005/01/11 13:51:32 ian Exp $ 15 */ 16 17 package gate.creole.gazetteer; 18 19 /** 20 * Used to describe a type of lookup annotations. A lookup is described by a 21 * major type a minor type and a list of languages. Added members are : 22 * ontologyClass and list. 23 * All these values are strings (the list of languages is a string and it is 24 * intended to represesnt a comma separated list). 25 */ 26 public class Lookup implements java.io.Serializable { 27 28 /** Debug flag 29 */ 30 private static final boolean DEBUG = false; 31 32 /** 33 * Creates a new Lookup value with the given major and minor types and 34 * languages. 35 * 36 * @param major major type 37 * @param minor minor type 38 * @param theLanguages the languages 39 */ 40 public Lookup(String theList, String major, String minor, String theLanguages){ 41 majorType = major; 42 minorType = minor; 43 languages = theLanguages; 44 list = theList; 45 } 46 47 /** Tha major type for this lookup, e.g. "Organisation" */ 48 public String majorType; 49 50 /** The minor type for this lookup, e.g. "Company" */ 51 public String minorType; 52 53 /** The languages for this lookup, e.g. "English, French" */ 54 public String languages; 55 56 /** the ontology class of this lookup according to the mapping between 57 * list and ontology */ 58 public String oClass; 59 60 /** the ontology ID */ 61 public String ontology; 62 63 /** the list represented by this lookup*/ 64 public String list; 65 66 /**Returns a string representation of this lookup in the format 67 * This method is used in equals() 68 * that caused this method to implement dualistic behaviour : 69 * i.e. whenever class and ontology are filled then use the 70 * long version,incl. list, ontology and class; 71 * else return just majorType.minorType */ 72 public String toString(){ 73 StringBuffer b = new StringBuffer(); 74 boolean longVersion = false; 75 if (null!=ontology && null!=oClass){ 76 longVersion = true; 77 } 78 79 if ( longVersion ) { 80 b.append(list); 81 b.append("."); 82 } 83 b.append(majorType); 84 b.append("."); 85 if (null != minorType) { 86 b.append(minorType); 87 if (null!= languages) { 88 b.append("."); 89 b.append(languages); 90 }//if 91 }//if 92 if (longVersion) { 93 b.append("|"); 94 b.append(ontology); 95 b.append(":"); 96 b.append(oClass); 97 } 98 return b.toString(); 99 } 100 101 /** 102 * Two lookups are equal if they have the same string representation 103 * (major type and minor type). 104 * @param obj 105 */ 106 public boolean equals(Object obj){ 107 if(obj instanceof Lookup) return obj.toString().equals(toString()); 108 else return false; 109 } // equals 110 111 /** * 112 */ 113 public int hashCode(){ return toString().hashCode();} 114 115 } // Lookup 116