1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package ubic.basecode.ontology.jena;
20
21 import com.hp.hpl.jena.enhanced.EnhGraph;
22 import com.hp.hpl.jena.enhanced.GraphPersonality;
23 import com.hp.hpl.jena.ontology.Individual;
24 import com.hp.hpl.jena.ontology.OntClass;
25 import com.hp.hpl.jena.ontology.Restriction;
26 import com.hp.hpl.jena.ontology.impl.OntClassImpl;
27 import com.hp.hpl.jena.rdf.model.Resource;
28 import ubic.basecode.ontology.model.OntologyIndividual;
29 import ubic.basecode.ontology.model.OntologyTerm;
30
31 import java.util.Set;
32
33
34
35
36 class OntologyIndividualImpl extends AbstractOntologyResource implements OntologyIndividual {
37
38 private final Individual ind;
39 private final Set<Restriction> additionalRestrictions;
40
41 public OntologyIndividualImpl( Individual ind, Set<Restriction> additionalRestrictions ) {
42 super( ind );
43 this.ind = ind;
44 this.additionalRestrictions = additionalRestrictions;
45 }
46
47 @Override
48 public OntologyTerm getInstanceOf() {
49 Resource type = ind.getRDFType();
50
51 OntClass cl;
52 EnhGraph g = new EnhGraph( type.getModel().getGraph(), new GraphPersonality() );
53 if ( OntClassImpl.factory.canWrap( type.asNode(), g ) ) {
54 cl = new OntClassImpl( type.asNode(), g );
55 } else {
56 throw new IllegalStateException( "sorry, can't handle that of instance" );
57 }
58
59 return new OntologyTermImpl( cl, additionalRestrictions );
60 }
61 }