-
Notifications
You must be signed in to change notification settings - Fork 2
/
ObjectWithAnnotationProperties.java
98 lines (82 loc) · 2.79 KB
/
ObjectWithAnnotationProperties.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
/*
* JB4JSON-LD
* Copyright (C) 2023 Czech Technical University in Prague
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3.0 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library.
*/
package cz.cvut.kbss.jsonld.environment.model;
import cz.cvut.kbss.jopa.model.annotations.Id;
import cz.cvut.kbss.jopa.model.annotations.OWLAnnotationProperty;
import cz.cvut.kbss.jopa.model.annotations.OWLClass;
import cz.cvut.kbss.jsonld.environment.Vocabulary;
import org.eclipse.rdf4j.model.IRI;
import org.eclipse.rdf4j.model.Model;
import org.eclipse.rdf4j.model.ValueFactory;
import org.eclipse.rdf4j.model.vocabulary.RDF;
import java.net.URI;
import java.util.Set;
@OWLClass(iri = Vocabulary.OBJECT_WITH_ANNOTATIONS)
public class ObjectWithAnnotationProperties implements GeneratesRdf {
@Id
private URI id;
@OWLAnnotationProperty(iri = Vocabulary.CHANGED_VALUE)
private String changedValue;
@OWLAnnotationProperty(iri = Vocabulary.ORIGIN)
private Set<Object> origins;
public ObjectWithAnnotationProperties() {
}
public ObjectWithAnnotationProperties(URI id) {
this.id = id;
}
public URI getId() {
return id;
}
public void setId(URI id) {
this.id = id;
}
@Override
public URI getUri() {
return id;
}
public String getChangedValue() {
return changedValue;
}
public void setChangedValue(String changedValue) {
this.changedValue = changedValue;
}
public Set<Object> getOrigins() {
return origins;
}
public void setOrigins(Set<Object> origins) {
this.origins = origins;
}
@Override
public void toRdf(Model model, ValueFactory vf, Set<URI> visited) {
if (visited.contains(id)) {
return;
}
visited.add(id);
final IRI iri = vf.createIRI(id.toString());
model.add(iri, RDF.TYPE, vf.createIRI(Vocabulary.OBJECT_WITH_ANNOTATIONS));
if (changedValue != null) {
model.add(iri, vf.createIRI(Vocabulary.CHANGED_VALUE), vf.createLiteral(changedValue));
}
if (origins != null) {
origins.forEach(o -> {
assert o instanceof URI;
model.add(iri, vf.createIRI(Vocabulary.ORIGIN), vf.createIRI(o.toString()));
});
}
}
}