TClass.java |
1 /* 2 * TClass.java 3 * 4 * Copyright (c) 2002, 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, June1991. 9 * 10 * A copy of this licence is included in the distribution in the file 11 * licence.html, and is also available at http://gate.ac.uk/gate/licence.html. 12 * 13 * borislav popov 02/2002 14 * 15 * 16 * $Id: TClass.java,v 1.1 2004/07/23 17:48:08 kalina Exp $ 17 */ 18 package gate.creole.ontology; 19 20 import java.util.ArrayList; 21 import java.util.Set; 22 23 24 /**An Interface representing a single ontology class */ 25 public interface TClass { 26 27 /**denotes a direct closure(no transitivity)*/ 28 public static final byte DIRECT_CLOSURE = 0; 29 30 /**denotes atransitive closure */ 31 public static final byte TRANSITIVE_CLOSURE = 1; 32 33 /**Gets the id. 34 * @return the id of the class 35 */ 36 public String getId(); 37 38 /**Gets the ontology to which the class belongs. 39 * @return the ontology to which the class belongs 40 */ 41 public Taxonomy getOntology() ; 42 43 /**Gets the URI of the class. 44 * @return the URI of the class 45 */ 46 public String getURI() ; 47 48 /** 49 * Sets the URI of the class. 50 * @param theURI the new URI to be set 51 */ 52 public void setURI(String theURI) ; 53 54 /** Gets the comment of the class. 55 * @return the comment of the class 56 */ 57 public String getComment(); 58 59 /** Sets the class comment. 60 * @param aComment the comment to be set 61 */ 62 public void setComment(String aComment) ; 63 64 /** Gets class name. 65 * @return the name of the class 66 */ 67 public String getName() ; 68 69 /** Sets the class name. 70 * @param aName the new name of the class 71 */ 72 public void setName(String aName) ; 73 74 /** 75 * Adds a sub class to this class. 76 * @param subClass the subClass to be added. 77 */ 78 public void addSubClass(TClass subClass) ; 79 80 /** Adds a super class to this class. 81 * @param superClass the super class to be added 82 */ 83 public void addSuperClass(TClass superClass) ; 84 85 /** 86 * Removes a sub class. 87 * @param subClass the sub class to be removed 88 */ 89 public void removeSubClass(TClass subClass) ; 90 91 /** 92 * Removes a super class. 93 * @param superClass the super class to be removed 94 */ 95 public void removeSuperClass(TClass superClass) ; 96 97 /** 98 * Gets the subclasses according to the desired closure. 99 * @param closure either DIRECT_CLOSURE or TRASITIVE_CLOSURE 100 * @return the set of subclasses 101 * @throws NoSuchClosureTypeException if an unknown closure is specified. 102 */ 103 public Set getSubClasses(byte closure) throws NoSuchClosureTypeException; 104 105 /** 106 * Gets the super classes according to the desired closure. 107 * @param closure either DIRECT_CLOSURE or TRASITIVE_CLOSURE 108 * @return the set of super classes 109 * @throws NoSuchClosureTypeException if an unknown closure is specified. 110 */ 111 public Set getSuperClasses(byte closure)throws NoSuchClosureTypeException ; 112 113 /** 114 * Infers the sub classes transitive closure. 115 */ 116 void inferSubClassesTransitiveClosure(); 117 118 /** 119 * Infers the super classes transitive closure. 120 */ 121 void inferSuperClassesTransitiveClosure(); 122 123 /** 124 * Checks whether this class is a top. 125 * @return true if this is a top class, otherwise - false. 126 */ 127 public boolean isTopClass(); 128 129 /** 130 * Dumps the class to string. 131 * @return the string representation of the class. 132 */ 133 public String toString(); 134 135 /** 136 * Gets the super classes, and returns them in an array list where on each index there 137 * is a collection of the super classes at distance - the index. 138 * @return <b>distance</b> from this class to a <b>set of super classes</b> 139 * e.g. 1 : a,b 140 * 2 : c,d 141 */ 142 public ArrayList getSuperClassesVSDistance(); 143 144 /** 145 * Gets the sub classes, and returns them in an array list where on each index there 146 * is a collection of the sub classes at distance - the index. 147 * @return <b>distance</b> from this class to a <b>set of sub classes</b> 148 * e.g. 1 : a,b 149 * 2 : c,d 150 */ 151 public ArrayList getSubClassesVSDistance(); 152 153 154 /** 155 * Checks the equality of two classes. 156 * @param o the ontology class to be tested versus this one. 157 * @return true, if the classes are equal, otherwise - false. 158 */ 159 public boolean equals(Object o); 160 161 } //class TClass