Package: TermMappingHolder
TermMappingHolder
name | instruction | branch | complexity | line | method | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TermMappingHolder(TermMappingHolder) |
|
|
|
|
|
||||||||||||||||||||
extractId(JsonNode) |
|
|
|
|
|
||||||||||||||||||||
getMappedTerm(String) |
|
|
|
|
|
||||||||||||||||||||
lambda$extractId$0(JsonNode) |
|
|
|
|
|
||||||||||||||||||||
lambda$extractId$1(JsonNode) |
|
|
|
|
|
||||||||||||||||||||
static {...} |
|
|
|
|
|
Coverage
1: package cz.cvut.kbss.jsonld.serialization.context;
2:
3: import cz.cvut.kbss.jsonld.JsonLd;
4: import cz.cvut.kbss.jsonld.serialization.model.JsonNode;
5: import cz.cvut.kbss.jsonld.serialization.model.ObjectNode;
6: import cz.cvut.kbss.jsonld.serialization.model.StringLiteralNode;
7:
8: import java.util.Map;
9: import java.util.Objects;
10: import java.util.Optional;
11:
12: abstract class TermMappingHolder {
13:
14: final TermMappingHolder parentContext;
15:
16: TermMappingHolder(TermMappingHolder parentContext) {
17: this.parentContext = parentContext;
18: }
19:
20: abstract boolean canRegisterTermMapping(String term, JsonNode mappedNode);
21:
22: abstract void registerTermMapping(String Term, JsonNode node);
23:
24: abstract Optional<JsonNode> getTermMapping(String term);
25:
26: abstract Map<String, JsonNode> getMapping();
27:
28: abstract boolean hasTermMapping(String term);
29:
30: abstract boolean hasTermMapping(String term, JsonNode mappedNode);
31:
32: abstract boolean isEmpty();
33:
34: abstract boolean isRoot();
35:
36: public Optional<String> getMappedTerm(String iri) {
37: Objects.requireNonNull(iri);
38:• for (Map.Entry<String, JsonNode> e : getMapping().entrySet()) {
39: final Optional<String> id = extractId(e.getValue());
40:• if (id.isPresent() && iri.equals(id.get())) {
41: return Optional.of(e.getKey());
42: }
43: }
44: return Optional.empty();
45: }
46:
47: private static Optional<String> extractId(JsonNode node) {
48:• assert node instanceof StringLiteralNode || node instanceof ObjectNode;
49:• if (node instanceof StringLiteralNode) {
50: return Optional.of(((StringLiteralNode) node).getValue());
51: } else {
52: final ObjectNode on = (ObjectNode) node;
53: return on.getItems().stream().filter(item -> JsonLd.ID.equals(item.getName()))
54: .map(idNode -> ((StringLiteralNode) idNode).getValue()).findAny();
55: }
56: }
57: }