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 public class OntologyIndividualImpl extends AbstractOntologyResource implements OntologyIndividual {
37
38 private static final long serialVersionUID = -6164561945940667693L;
39
40 private final Individual ind;
41 private final Set<Restriction> additionalRestrictions;
42
43 public OntologyIndividualImpl( Individual ind, Set<Restriction> additionalRestrictions ) {
44 super( ind );
45 this.ind = ind;
46 this.additionalRestrictions = additionalRestrictions;
47 }
48
49 public OntologyIndividualImpl( Individual ind, Set<Restriction> additionalRestrictions, double score ) {
50 super( ind, score );
51 this.ind = ind;
52 this.additionalRestrictions = additionalRestrictions;
53 }
54
55 @Override
56 public OntologyTerm getInstanceOf() {
57 Resource type = ind.getRDFType();
58
59 OntClass cl = null;
60 EnhGraph g = new EnhGraph( type.getModel().getGraph(), new GraphPersonality() );
61 if ( OntClassImpl.factory.canWrap( type.asNode(), g ) ) {
62 cl = new OntClassImpl( type.asNode(), g );
63 } else {
64 throw new IllegalStateException( "sorry, can't handle that of instance" );
65 }
66
67 return new OntologyTermImpl( cl, additionalRestrictions );
68 }
69 }