View Javadoc
1   /*
2    * The basecode project
3    *
4    * Copyright (c) 2007-2019 Columbia University
5    *
6    * Licensed under the Apache License, Version 2.0 (the "License");
7    * you may not use this file except in compliance with the License.
8    * You may obtain a copy of the License at
9    *
10   *       http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   *
18   */
19  package ubic.basecode.ontology.model;
20  
21  import java.util.Collection;
22  
23  /**
24   * @author Paul
25   */
26  public interface OntologyTerm extends OntologyResource {
27  
28      Collection<String> getAlternativeIds();
29  
30      Collection<AnnotationProperty> getAnnotations();
31  
32      /**
33       * Obtain the children of this term via subclasses and additional properties.
34       *
35       * @see #getChildren(boolean, boolean)
36       */
37      default Collection<OntologyTerm> getChildren( boolean direct ) {
38          return getChildren( direct, true, false );
39      }
40  
41      default Collection<OntologyTerm> getChildren( boolean direct, boolean includeAdditionalProperties ) {
42          return getChildren( direct, includeAdditionalProperties, false );
43      }
44  
45      /**
46       * Obtain the children of this term via subclass relationships and possibly some additional properties.
47       *
48       * @param direct                      return only the immediate children; if false, return all of them down to the leaves.
49       * @param includeAdditionalProperties include terms matched via additional properties
50       */
51      Collection<OntologyTerm> getChildren( boolean direct, boolean includeAdditionalProperties, boolean keepObsoletes );
52  
53      String getComment();
54  
55      default Collection<OntologyIndividual> getIndividuals() {
56          return getIndividuals( true );
57      }
58  
59      Collection<OntologyIndividual> getIndividuals( boolean direct );
60  
61      String getLocalName();
62  
63      Object getModel();
64  
65      /**
66       * Note that any restriction superclasses are not returned, unless they are has_proper_part
67       *
68       * @param direct
69       * @return
70       */
71      default Collection<OntologyTerm> getParents( boolean direct ) {
72          return getParents( direct, true, false );
73      }
74  
75      default Collection<OntologyTerm> getParents( boolean direct, boolean includeAdditionalProperties ) {
76          return getParents( direct, includeAdditionalProperties, false );
77      }
78  
79      Collection<OntologyTerm> getParents( boolean direct, boolean includeAdditionalProperties, boolean keepObsoletes );
80  
81      Collection<OntologyRestriction> getRestrictions();
82  
83      /**
84       * @deprecated use {@link #getLabel()} instead.
85       */
86      @Deprecated
87      String getTerm();
88  
89      boolean isRoot();
90  
91      /**
92       * check to see if the term is obsolete, if it is it should not be used
93       *
94       * @deprecated use {@link #isObsolete()} instead
95       */
96      @Deprecated
97      boolean isTermObsolete();
98  }