1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package ubic.basecode.ontology.model;
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.impl.OntClassImpl;
26 import com.hp.hpl.jena.rdf.model.Resource;
27
28
29
30
31 public class OntologyIndividualImpl extends AbstractOntologyResource implements OntologyIndividual {
32
33 private static final long serialVersionUID = -6164561945940667693L;
34
35 private Individual ind;
36 private String uri;
37
38 public OntologyIndividualImpl( Individual ind ) {
39 this.ind = ind;
40 this.uri = ind.getURI();
41 }
42
43 @Override
44 public OntologyTerm getInstanceOf() {
45 Resource type = ind.getRDFType();
46
47 OntClass cl = null;
48 EnhGraph g = new EnhGraph( type.getModel().getGraph(), new GraphPersonality() );
49 if ( OntClassImpl.factory.canWrap( type.asNode(), g ) ) {
50 cl = new OntClassImpl( type.asNode(), g );
51 } else {
52 throw new IllegalStateException( "sorry, can't handle that of instance" );
53 }
54
55 return new OntologyTermImpl( cl );
56 }
57
58 @Override
59 public String getLabel() {
60 return this.toString();
61 }
62
63 @Override
64 public String getUri() {
65 return uri;
66 }
67
68 @Override
69 public String toString() {
70 String label = ind.getLabel( "en" );
71 if ( label == null ) label = ind.getLabel( null );
72 if ( label == null ) label = ind.getLocalName();
73 if ( label == null ) label = ind.getURI();
74 return label;
75 }
76 }