Example usage for com.google.gson.stream JsonReader nextString

List of usage examples for com.google.gson.stream JsonReader nextString

Introduction

In this page you can find the example usage for com.google.gson.stream JsonReader nextString.

Prototype

public String nextString() throws IOException 

Source Link

Document

Returns the com.google.gson.stream.JsonToken#STRING string value of the next token, consuming it.

Usage

From source file:de.micromata.genome.junittools.wicket.models.WicketTestBuilderGsonBuilder.java

License:Apache License

public static Gson getGson() {
    if (gsonBuilder == null) {
        gsonBuilder = new GsonBuilder();
        gsonBuilder.registerTypeAdapterFactory(new TypeAdapterFactory() {

            @Override//  w  w  w. j a v  a2  s  . c o  m
            public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
                if (type.getRawType() == Class.class) {
                    return new TypeAdapter<T>() {
                        @Override
                        public void write(JsonWriter out, T value) throws IOException {
                            out.value(((Class) value).getName());
                        }

                        @Override
                        public T read(JsonReader in) throws IOException {
                            try {
                                return (T) Class.forName(in.nextString());
                            } catch (ClassNotFoundException e) {
                                LOG.error("unable to transform " + in.nextString()
                                        + " to a reasonable class, please check this!");
                            }
                            return null;
                        }
                    };
                }
                return null;
            }
        });
    }
    return gsonBuilder.create();
}

From source file:de.pribluda.android.jsonmarshaller.JSONUnmarshaller.java

License:Apache License

/**
 * unmarshal current value, possibly walking down the three
 *
 * @param reader json reader to pull value from
 * @param clazz  expected class/*w w  w . j a  v a  2 s.  c om*/
 * @return
 * @throws IOException
 * @throws IllegalAccessException
 * @throws InvocationTargetException
 * @throws InstantiationException
 * @throws NoSuchMethodException
 */
private static Object unmarshalValue(JsonReader reader, Class clazz) throws IOException, IllegalAccessException,
        InvocationTargetException, InstantiationException, NoSuchMethodException {

    Object value = null;

    switch (reader.peek()) {
    case STRING:
    case NUMBER:
        // process string
        value = reader.nextString();
        break;
    case BOOLEAN:
        value = reader.nextBoolean();
        break;
    case BEGIN_ARRAY:
        //  we are interested in arrays
        if (clazz.isArray()) {
            // populate field value from JSON Array
            value = populateRecusrsive(clazz, reader);
        } else {
            reader.skipValue();
        }
        break;
    case BEGIN_OBJECT:
        // so, we are unmarshalling nested object - recurse
        value = unmarshall(reader, clazz);
        break;
    default:
        // do not know what to do with it,  skip
        reader.skipValue();
    }

    return value;
}

From source file:dk.ilios.spanner.json.InstantTypeAdapter.java

License:Apache License

@Override
public Instant read(JsonReader in) throws IOException {
    return Instant.from(DateTimeFormatter.ISO_INSTANT.parse(in.nextString()));
}

From source file:edu.isi.karma.modeling.alignment.GraphUtil.java

License:Apache License

private static Node readNode(JsonReader reader) throws IOException {

    String id = null;/*  ww w. ja  v  a  2  s.  c o  m*/
    Label label = null;
    NodeType type = null;
    String hNodeId = null;
    String columnName = null;
    Label rdfLiteralType = null;
    String language = null;
    Label datatype = null;
    String value = null;
    boolean isUri = false;
    SemanticType userSelectedSemanticType = null;
    List<SemanticType> learnedSemanticTypes = null;
    List<SemanticType> userSemanticTypes = null;
    Set<String> modelIds = null;

    reader.beginObject();
    while (reader.hasNext()) {
        String key = reader.nextName();
        if (key.equals("id") && reader.peek() != JsonToken.NULL) {
            id = reader.nextString();
        } else if (key.equals("label") && reader.peek() != JsonToken.NULL) {
            label = readLabel(reader);
        } else if (key.equals("type") && reader.peek() != JsonToken.NULL) {
            type = NodeType.valueOf(reader.nextString());
        } else if (key.equals("hNodeId") && reader.peek() != JsonToken.NULL) {
            hNodeId = reader.nextString();
        } else if (key.equals("columnName") && reader.peek() != JsonToken.NULL) {
            columnName = reader.nextString();
        } else if (key.equals("datatype") && reader.peek() != JsonToken.NULL) {
            datatype = readLabel(reader);
        } else if (key.equals("value") && reader.peek() != JsonToken.NULL) {
            value = reader.nextString();
        } else if (key.equals("isUri") && reader.peek() != JsonToken.NULL) {
            isUri = Boolean.parseBoolean(reader.nextString());
        } else if (key.equals("rdfLiteralType") && reader.peek() != JsonToken.NULL) {
            rdfLiteralType = readLabel(reader);
        } else if (key.equals("language") && reader.peek() != JsonToken.NULL) {
            language = reader.nextString();
        } else if (key.equals("userSelectedSemanticType") && reader.peek() != JsonToken.NULL) {
            userSelectedSemanticType = readSemanticType(reader);
        } else if (key.equals("suggestedSemanticTypes") && reader.peek() != JsonToken.NULL) {
            learnedSemanticTypes = new ArrayList<>();
            reader.beginArray();
            while (reader.hasNext()) {
                SemanticType semanticType = readSemanticType(reader);
                learnedSemanticTypes.add(semanticType);
            }
            reader.endArray();
        } else if (key.equals("userSemanticTypes") && reader.peek() != JsonToken.NULL) {
            userSemanticTypes = new ArrayList<>();
            reader.beginArray();
            while (reader.hasNext()) {
                SemanticType semanticType = readSemanticType(reader);
                userSemanticTypes.add(semanticType);
            }
            reader.endArray();
        } else if (key.equals("learnedSemanticTypes") && reader.peek() != JsonToken.NULL) {
            learnedSemanticTypes = new ArrayList<>();
            reader.beginArray();
            while (reader.hasNext()) {
                SemanticType semanticType = readSemanticType(reader);
                learnedSemanticTypes.add(semanticType);
            }
            reader.endArray();
        } else if (key.equals("modelIds") && reader.peek() != JsonToken.NULL) {
            modelIds = readModelIds(reader);
        } else {
            reader.skipValue();
        }
    }
    reader.endObject();

    Node n = null;
    if (type == NodeType.InternalNode) {
        n = new InternalNode(id, label);
    } else if (type == NodeType.ColumnNode) {
        n = new ColumnNode(id, hNodeId, columnName, rdfLiteralType, language);
        if (userSemanticTypes == null && userSelectedSemanticType != null) {
            userSemanticTypes = new ArrayList<>();
            userSemanticTypes.add(userSelectedSemanticType);
        }
        if (userSemanticTypes != null) {
            for (SemanticType st : userSemanticTypes)
                ((ColumnNode) n).assignUserType(st);
        }
        ((ColumnNode) n).setLearnedSemanticTypes(learnedSemanticTypes);
    } else if (type == NodeType.LiteralNode) {
        n = new LiteralNode(id, value, datatype, language, isUri);
    } else {
        logger.error("cannot instanciate a node from the type: " + type.toString());
        return null;
    }

    n.setModelIds(modelIds);

    return n;
}

From source file:edu.isi.karma.modeling.alignment.GraphUtil.java

License:Apache License

private static DefaultLink readLink(JsonReader reader, Double[] weight) throws IOException {

    String id = null;//from   w ww .j a  va2s. c o m
    Label label = null;
    LinkType type = null;
    String hNodeId = null;
    ObjectPropertyType objectPropertyType = null;
    String specializedLinkId = null;
    LinkStatus status = null;
    LinkKeyInfo keyInfo = null;
    Set<String> modelIds = null;
    if (weight == null)
        weight = new Double[1];

    reader.beginObject();
    while (reader.hasNext()) {
        String key = reader.nextName();
        if (key.equals("id") && reader.peek() != JsonToken.NULL) {
            id = reader.nextString();
        } else if (key.equals("label") && reader.peek() != JsonToken.NULL) {
            label = readLabel(reader);
        } else if (key.equals("type") && reader.peek() != JsonToken.NULL) {
            type = LinkType.valueOf(reader.nextString());
        } else if (key.equals("hNodeId") && reader.peek() != JsonToken.NULL) {
            hNodeId = reader.nextString();
        } else if (key.equals("objectPropertyType") && reader.peek() != JsonToken.NULL) {
            objectPropertyType = ObjectPropertyType.valueOf(reader.nextString());
        } else if (key.equals("specializedLinkId") && reader.peek() != JsonToken.NULL) {
            specializedLinkId = reader.nextString();
        } else if (key.equals("status") && reader.peek() != JsonToken.NULL) {
            status = LinkStatus.valueOf(reader.nextString());
        } else if (key.equals("keyInfo") && reader.peek() != JsonToken.NULL) {
            keyInfo = LinkKeyInfo.valueOf(reader.nextString());
        } else if (key.equals("modelIds") && reader.peek() != JsonToken.NULL) {
            modelIds = readModelIds(reader);
        } else if (key.equals("weight") && reader.peek() != JsonToken.NULL) {
            weight[0] = new Double(reader.nextDouble());
        } else {
            reader.skipValue();
        }
    }
    reader.endObject();

    DefaultLink l = null;
    if (type == LinkType.ClassInstanceLink) {
        l = new ClassInstanceLink(id, keyInfo);
    } else if (type == LinkType.ColumnSubClassLink) {
        l = new ColumnSubClassLink(id);
    } else if (type == LinkType.DataPropertyLink) {
        l = new DataPropertyLink(id, label);
    } else if (type == LinkType.DataPropertyOfColumnLink) {
        l = new DataPropertyOfColumnLink(id, hNodeId, specializedLinkId);
    } else if (type == LinkType.ObjectPropertyLink) {
        l = new ObjectPropertyLink(id, label, objectPropertyType);
    } else if (type == LinkType.ObjectPropertySpecializationLink) {
        l = new ObjectPropertySpecializationLink(hNodeId, specializedLinkId);
    } else if (type == LinkType.SubClassLink) {
        l = new SubClassLink(id);
    } else if (type == LinkType.CompactObjectPropertyLink) {
        l = new CompactObjectPropertyLink(id, objectPropertyType);
    } else if (type == LinkType.CompactSubClassLink) {
        l = new CompactSubClassLink(id);
    } else {
        logger.error("cannot instanciate a link from the type: " + type.toString());
        return null;
    }

    if (l instanceof LabeledLink) {
        ((LabeledLink) l).setStatus(status);
        ((LabeledLink) l).setModelIds(modelIds);
    }
    return l;
}

From source file:edu.isi.karma.modeling.alignment.GraphUtil.java

License:Apache License

private static Label readLabel(JsonReader reader) throws IOException {

    String uri = null;/*from w w w  .  ja v  a  2  s  . c  o  m*/
    //      String ns = null;
    //      String prefix = null;
    //      String rdfsComment = null;
    String rdfsLabel = null;

    reader.beginObject();
    while (reader.hasNext()) {
        String key = reader.nextName();
        if (key.equals("uri") && reader.peek() != JsonToken.NULL) {
            uri = reader.nextString();
            //} else if (key.equals("ns") && reader.peek() != JsonToken.NULL) {
            //   ns = reader.nextString();
            //} else if (key.equals("prefix") && reader.peek() != JsonToken.NULL) {
            //   prefix = reader.nextString();
            //} else if (key.equals("rdfsLabel") && reader.peek() != JsonToken.NULL) {
            //   rdfsLabel = reader.nextString();
            //} else if (key.equals("rdfsComment") && reader.peek() != JsonToken.NULL) {
            //   rdfsComment = reader.nextString();
        } else {
            reader.skipValue();
        }
    }
    reader.endObject();

    //       Label label = new Label(uri, ns, prefix, rdfsLabel, rdfsComment);
    Label label = new Label(uri);
    return label;
}

From source file:edu.isi.karma.modeling.alignment.GraphUtil.java

License:Apache License

private static SemanticType readSemanticType(JsonReader reader) throws IOException {

    String hNodeId = null;//from w w  w  .  j  av  a 2 s  .  co m
    Label domain = null;
    Label type = null;
    Origin origin = null;
    Double confidenceScore = null;

    reader.beginObject();
    while (reader.hasNext()) {
        String key = reader.nextName();
        if (key.equals("hNodeId") && reader.peek() != JsonToken.NULL) {
            hNodeId = reader.nextString();
        } else if (key.equals("domain") && reader.peek() != JsonToken.NULL) {
            domain = readLabel(reader);
        } else if (key.equals("type") && reader.peek() != JsonToken.NULL) {
            type = readLabel(reader);
        } else if (key.equals("origin") && reader.peek() != JsonToken.NULL) {
            origin = Origin.valueOf(reader.nextString());
        } else if (key.equals("confidenceScore") && reader.peek() != JsonToken.NULL) {
            confidenceScore = reader.nextDouble();
        } else {
            reader.skipValue();
        }
    }
    reader.endObject();

    SemanticType semanticType = new SemanticType(hNodeId, type, domain, origin, confidenceScore);
    return semanticType;
}

From source file:edu.isi.karma.modeling.alignment.GraphUtil.java

License:Apache License

private static Set<String> readModelIds(JsonReader reader) throws IOException {

    Set<String> modelIds = new HashSet<>();

    reader.beginArray();/*from   w  w  w  . java2  s  . co  m*/
    while (reader.hasNext()) {
        modelIds.add(reader.nextString());
    }
    reader.endArray();

    return modelIds;
}

From source file:edu.isi.karma.modeling.alignment.SemanticModel.java

License:Apache License

private static SemanticModel readModel(JsonReader reader) throws IOException {

    String id = null;/*from w  w  w  .j a va2 s.  com*/
    String name = null;
    String description = null;
    DirectedWeightedMultigraph<Node, DefaultLink> graph = null;
    List<ColumnNode> sourceColumns = null;
    HashMap<String, ColumnNode> sourceColumnIds = null;

    Map<String, String> mappingToSourceColumnsIds = null;

    reader.beginObject();
    while (reader.hasNext()) {
        String key = reader.nextName();
        if (key.equals("id") && reader.peek() != JsonToken.NULL) {
            id = reader.nextString();
        } else if (key.equals("name") && reader.peek() != JsonToken.NULL) {
            name = reader.nextString();
        } else if (key.equals("description") && reader.peek() != JsonToken.NULL) {
            description = reader.nextString();
        } else if (key.equals("sourceColumns") && reader.peek() != JsonToken.NULL) {
            sourceColumns = new LinkedList<>();
            sourceColumnIds = new HashMap<>();
            reader.beginArray();
            while (reader.hasNext()) {
                ColumnNode cn = readSourceColumn(reader);
                if (cn != null) {
                    sourceColumns.add(cn);
                    sourceColumnIds.put(cn.getId(), cn);
                }
            }
            reader.endArray();
        } else if (key.equals("mappingToSourceColumns") && reader.peek() != JsonToken.NULL) {
            mappingToSourceColumnsIds = new HashMap<>();
            Map<String, String> oneEntryMapping;
            reader.beginArray();
            while (reader.hasNext()) {
                oneEntryMapping = readMappingToSourceColumn(reader);
                if (oneEntryMapping != null && oneEntryMapping.size() == 1)
                    mappingToSourceColumnsIds.putAll(oneEntryMapping);
            }
            reader.endArray();
        } else if (key.equals("graph") && reader.peek() != JsonToken.NULL) {
            graph = GraphUtil.readGraph(reader);
        } else {
            reader.skipValue();
        }
    }
    reader.endObject();

    Map<ColumnNode, ColumnNode> mappingToSourceColumns = new HashMap<>();
    if (graph != null && mappingToSourceColumnsIds != null && !mappingToSourceColumnsIds.isEmpty()) {
        for (Node n : graph.vertexSet()) {
            if (n instanceof ColumnNode) {
                ColumnNode cn = (ColumnNode) n;
                String sourceColumnId = mappingToSourceColumnsIds.get(cn.getId());
                if (sourceColumnId != null) {
                    ColumnNode sourceColumn = sourceColumnIds.get(sourceColumnId);
                    if (sourceColumn != null)
                        mappingToSourceColumns.put(cn, sourceColumn);
                }
            }
        }
    }

    SemanticModel semanticModel = new SemanticModel(id, GraphUtil.asLabeledGraph(graph), sourceColumns,
            mappingToSourceColumns);
    semanticModel.setName(name);
    semanticModel.setDescription(description);

    return semanticModel;
}

From source file:edu.isi.karma.modeling.alignment.SemanticModel.java

License:Apache License

private static ColumnNode readSourceColumn(JsonReader reader) throws IOException {
    String id = null;/*from   www  .j  a  v  a2s  . co m*/
    String hNodeId = null;
    String columnName = null;

    reader.beginObject();
    while (reader.hasNext()) {
        String key = reader.nextName();
        if (key.equals("id") && reader.peek() != JsonToken.NULL) {
            id = reader.nextString();
        } else if (key.equals("hNodeId") && reader.peek() != JsonToken.NULL) {
            hNodeId = reader.nextString();
        } else if (key.equals("columnName") && reader.peek() != JsonToken.NULL) {
            columnName = reader.nextString();
        } else {
            reader.skipValue();
        }
    }
    reader.endObject();

    ColumnNode cn = new ColumnNode(id, hNodeId, columnName, null, null);
    return cn;
}