| 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.3 2005/12/14 14:28:58 julien_nioche Exp $
17 */
18 package gate.creole.ontology;
19
20 import java.util.ArrayList;
21 import java.util.Set;
22
23 /** An Interface representing a single ontology class */
24 public interface TClass extends OntologyResource, OntologyConstants {
25 /**
26 * Gets the id.
27 *
28 * @return the id of the class
29 */
30 public String getId();
31
32 /**
33 * Adds a sub class to this class.
34 *
35 * @param subClass
36 * the subClass to be added.
37 */
38 public void addSubClass(TClass subClass);
39
40 /**
41 * Adds a super class to this class.
42 *
43 * @param superClass
44 * the super class to be added
45 */
46 public void addSuperClass(TClass superClass);
47
48 /**
49 * Removes a sub class.
50 *
51 * @param subClass
52 * the sub class to be removed
53 */
54 public void removeSubClass(TClass subClass);
55
56 /**
57 * Removes a super class.
58 *
59 * @param superClass
60 * the super class to be removed
61 */
62 public void removeSuperClass(TClass superClass);
63
64 /**
65 * Gets the subclasses according to the desired closure.
66 *
67 * @param closure
68 * either DIRECT_CLOSURE or TRASITIVE_CLOSURE
69 * @return the set of subclasses
70 * @throws NoSuchClosureTypeException
71 * if an unknown closure is specified.
72 */
73 public Set getSubClasses(byte closure);
74
75 /**
76 * Gets the super classes according to the desired closure.
77 *
78 * @param closure
79 * either DIRECT_CLOSURE or TRASITIVE_CLOSURE
80 * @return the set of super classes
81 * @throws NoSuchClosureTypeException
82 * if an unknown closure is specified.
83 */
84 public Set getSuperClasses(byte closure);
85
86 /**
87 * Infers the sub classes transitive closure.
88 */
89 void inferSubClassesTransitiveClosure();
90
91 /**
92 * Infers the super classes transitive closure.
93 */
94 void inferSuperClassesTransitiveClosure();
95
96 /**
97 * Checks whether this class is a top.
98 *
99 * @return true if this is a top class, otherwise - false.
100 */
101 public boolean isTopClass();
102
103 /**
104 * Dumps the class to string.
105 *
106 * @return the string representation of the class.
107 */
108 public String toString();
109
110 /**
111 * Gets the super classes, and returns them in an array list where on each
112 * index there is a collection of the super classes at distance - the index.
113 *
114 * @return <b>distance</b> from this class to a <b>set of super classes</b>
115 * e.g. 1 : a,b 2 : c,d
116 */
117 public ArrayList getSuperClassesVSDistance();
118
119 /**
120 * Gets the sub classes, and returns them in an array list where on each index
121 * there is a collection of the sub classes at distance - the index.
122 *
123 * @return <b>distance</b> from this class to a <b>set of sub classes</b>
124 * e.g. 1 : a,b 2 : c,d
125 */
126 public ArrayList getSubClassesVSDistance();
127
128 /**
129 * Checks the equality of two classes.
130 *
131 * @param o
132 * the ontology class to be tested versus this one.
133 * @return true, if the classes are equal, otherwise - false.
134 */
135 public boolean equals(Object o);
136 } // class TClass
137