com.arcadedb.serializer.JsonGraphSerializer Maven / Gradle / Ivy
/*
* Copyright © 2021-present Arcade Data Ltd ([email protected])
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* SPDX-FileCopyrightText: 2021-present Arcade Data Ltd ([email protected])
* SPDX-License-Identifier: Apache-2.0
*/
package com.arcadedb.serializer;
import com.arcadedb.database.Document;
import com.arcadedb.database.RID;
import com.arcadedb.graph.Edge;
import com.arcadedb.graph.Vertex;
import com.arcadedb.serializer.json.JSONArray;
import com.arcadedb.serializer.json.JSONObject;
import java.util.*;
public class JsonGraphSerializer extends JsonSerializer {
private boolean expandVertexEdges = false;
private JSONObject sharedJson = null;
public JSONObject serializeGraphElement(final Document document) {
if (sharedJson != null)
return serializeGraphElement(document, sharedJson);
return serializeGraphElement(document, new JSONObject());
}
public JSONObject serializeGraphElement(final Document document, final JSONObject object) {
final JSONObject properties;
if (object.has("p")) {
// REUSE PROPERTY OBJECT
properties = object.getJSONObject("p");
properties.clear();
} else
properties = new JSONObject();
object.clear();
object.put("p", properties);
final RID rid = document.getIdentity();
if (rid != null)
object.put("r", rid.toString());
object.put("t", document.getTypeName());
for (final Map.Entry prop : document.toMap().entrySet()) {
Object value = prop.getValue();
if (value != null) {
if (value instanceof Document)
value = serializeGraphElement((Document) value, new JSONObject());
else if (value instanceof Collection) {
final List
© 2015 - 2024 Weber Informatics LLC | Privacy Policy