Skip to content

Method: getName()

1: /*
2: * JB4JSON-LD
3: * Copyright (C) 2024 Czech Technical University in Prague
4: *
5: * This library is free software; you can redistribute it and/or
6: * modify it under the terms of the GNU Lesser General Public
7: * License as published by the Free Software Foundation; either
8: * version 3.0 of the License, or (at your option) any later version.
9: *
10: * This library is distributed in the hope that it will be useful,
11: * but WITHOUT ANY WARRANTY; without even the implied warranty of
12: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13: * Lesser General Public License for more details.
14: *
15: * You should have received a copy of the GNU Lesser General Public
16: * License along with this library.
17: */
18: package cz.cvut.kbss.jsonld.serialization.model;
19:
20: import cz.cvut.kbss.jsonld.exception.JsonLdSerializationException;
21: import cz.cvut.kbss.jsonld.serialization.JsonGenerator;
22:
23: import java.io.IOException;
24:
25: public abstract class JsonNode {
26:
27: private final String name;
28: private final boolean valueNode;
29:
30: JsonNode() {
31: this.name = null;
32: this.valueNode = true;
33: }
34:
35: public JsonNode(String name) {
36: this.name = name;
37: this.valueNode = name == null;
38: }
39:
40: public String getName() {
41: return name;
42: }
43:
44: public boolean isValueNode() {
45: return valueNode;
46: }
47:
48: public void write(JsonGenerator writer) {
49: try {
50: if (!valueNode) {
51: writeKey(writer);
52: }
53: writeValue(writer);
54: } catch (IOException e) {
55: throw new JsonLdSerializationException("Exception during serialization of node " + this, e);
56: }
57: }
58:
59: protected void writeKey(JsonGenerator writer) throws IOException {
60: writer.writeFieldName(name);
61: }
62:
63: abstract protected void writeValue(JsonGenerator writer) throws IOException;
64:
65: @Override
66: public String toString() {
67: return name == null ? "{" : "{\"" + name + "\": ";
68: }
69: }