X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.charts%2Fsrc%2Forg%2Fsimantics%2Fcharts%2Finternal%2FJsonUtils.java;fp=bundles%2Forg.simantics.charts%2Fsrc%2Forg%2Fsimantics%2Fcharts%2Finternal%2FJsonUtils.java;h=19d9d48430d6109bf18acb930d15774b0a41e050;hp=31861ea274bb45a40f4df85d88acbf7142c6408c;hb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;hpb=24e2b34260f219f0d1644ca7a138894980e25b14 diff --git a/bundles/org.simantics.charts/src/org/simantics/charts/internal/JsonUtils.java b/bundles/org.simantics.charts/src/org/simantics/charts/internal/JsonUtils.java index 31861ea27..19d9d4843 100644 --- a/bundles/org.simantics.charts/src/org/simantics/charts/internal/JsonUtils.java +++ b/bundles/org.simantics.charts/src/org/simantics/charts/internal/JsonUtils.java @@ -1,71 +1,71 @@ -package org.simantics.charts.internal; - -import java.io.IOException; -import java.util.Optional; - -import org.simantics.db.ReadGraph; -import org.simantics.db.RequestProcessor; -import org.simantics.db.common.request.UniqueRead; -import org.simantics.db.exception.DatabaseException; -import org.simantics.db.layer0.variable.Variable; -import org.simantics.db.layer0.variable.Variables; - -import com.fasterxml.jackson.core.JsonFactory; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonToken; - -/** - * @author Tuukka Lehtonen - * - */ -public class JsonUtils { - - public static Optional tryParseJsonPropertyVariable(RequestProcessor processor, String json) throws DatabaseException { - return processor.syncRequest(new UniqueRead>() { - @Override - public Optional perform(ReadGraph graph) throws DatabaseException { - return tryParseJsonPropertyVariable(graph, json); - } - }); - } - - public static Optional tryParseJsonPropertyVariable(ReadGraph graph, String json) throws DatabaseException { - try (JsonParser jp = new JsonFactory().createParser(json)) { - return JsonUtils.readPossibleVariable(graph, jp); - } catch (IOException e) { - throw new DatabaseException(e); - } - } - - public static Optional readPossibleVariable(ReadGraph graph, JsonParser jp) throws IOException, DatabaseException { - Optional uri = readPossibleVariableUri(jp); - return uri.isPresent() ? Optional.ofNullable(Variables.getPossibleVariable(graph, uri.get())) : Optional.empty(); - } - - public static Optional readPossibleVariableUri(JsonParser jp) throws IOException { - // Sanity check: verify that we got "Json Object": - if (jp.nextToken() != JsonToken.START_OBJECT) - throw new IOException("Expected data to start with an Object"); - - String uri = null; - String type = null; - String defaultPropertyUri = null; - - while (jp.nextToken() != JsonToken.END_OBJECT) { - String fieldName = jp.getCurrentName(); - jp.nextToken(); - if (fieldName.equals("uri")) { - uri = jp.getValueAsString(); - } else if (fieldName.equals("type")) { - type = jp.getValueAsString(); - } else if (fieldName.equals("defaultPropertyUri")) { - defaultPropertyUri = jp.getValueAsString(); - } - } - - return Optional.ofNullable("Variable".equals(type) ? - defaultPropertyUri != null ? defaultPropertyUri : uri - : null); - } - -} +package org.simantics.charts.internal; + +import java.io.IOException; +import java.util.Optional; + +import org.simantics.db.ReadGraph; +import org.simantics.db.RequestProcessor; +import org.simantics.db.common.request.UniqueRead; +import org.simantics.db.exception.DatabaseException; +import org.simantics.db.layer0.variable.Variable; +import org.simantics.db.layer0.variable.Variables; + +import com.fasterxml.jackson.core.JsonFactory; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonToken; + +/** + * @author Tuukka Lehtonen + * + */ +public class JsonUtils { + + public static Optional tryParseJsonPropertyVariable(RequestProcessor processor, String json) throws DatabaseException { + return processor.syncRequest(new UniqueRead>() { + @Override + public Optional perform(ReadGraph graph) throws DatabaseException { + return tryParseJsonPropertyVariable(graph, json); + } + }); + } + + public static Optional tryParseJsonPropertyVariable(ReadGraph graph, String json) throws DatabaseException { + try (JsonParser jp = new JsonFactory().createParser(json)) { + return JsonUtils.readPossibleVariable(graph, jp); + } catch (IOException e) { + throw new DatabaseException(e); + } + } + + public static Optional readPossibleVariable(ReadGraph graph, JsonParser jp) throws IOException, DatabaseException { + Optional uri = readPossibleVariableUri(jp); + return uri.isPresent() ? Optional.ofNullable(Variables.getPossibleVariable(graph, uri.get())) : Optional.empty(); + } + + public static Optional readPossibleVariableUri(JsonParser jp) throws IOException { + // Sanity check: verify that we got "Json Object": + if (jp.nextToken() != JsonToken.START_OBJECT) + throw new IOException("Expected data to start with an Object"); + + String uri = null; + String type = null; + String defaultPropertyUri = null; + + while (jp.nextToken() != JsonToken.END_OBJECT) { + String fieldName = jp.getCurrentName(); + jp.nextToken(); + if (fieldName.equals("uri")) { + uri = jp.getValueAsString(); + } else if (fieldName.equals("type")) { + type = jp.getValueAsString(); + } else if (fieldName.equals("defaultPropertyUri")) { + defaultPropertyUri = jp.getValueAsString(); + } + } + + return Optional.ofNullable("Variable".equals(type) ? + defaultPropertyUri != null ? defaultPropertyUri : uri + : null); + } + +}