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

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

Introduction

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

Prototype

public boolean hasNext() throws IOException 

Source Link

Document

Returns true if the current array or object has another element.

Usage

From source file:de.winniehell.battlebeavers.storage.GameStorage.java

License:Open Source License

/**
 * loads the storage from file/*from w ww.j  a  va  2 s . c om*/
 * @throws FileNotFoundException
 */
private void loadFromFile() throws FileNotFoundException {

    if (!(new File(getFileName())).exists()) {
        final GameInfo info = GameInfo.fromFile(context, game);

        Log.d(TAG, "Copying maps/" + info.getMapName() + "/setup.json");

        try {
            final InputStream src = context.getAssets().open("maps/" + info.getMapName() + "/setup.json");

            final FileOutputStream dest = new FileOutputStream(getFileName());

            StreamUtils.copyAndClose(src, dest);
        } catch (final IOException e) {
            Log.e(TAG, "Copying map failed!", e);
            return;
        }
    }

    try {
        Log.d(TAG, "loading: " + StreamUtils.readFully(new FileInputStream(getFileName())));
    } catch (final Exception e) {
        Log.e(TAG, e.getMessage());
        return;
    }

    final Gson gson = CustomGSON.getInstance();
    final JsonReader reader = CustomGSON.getReader(context, getFileName());

    // file does not exist
    if (reader == null) {
        throw new FileNotFoundException(getFileName());
    }

    try {
        reader.beginArray();
        while (reader.hasNext()) {
            final Soldier soldier = gson.fromJson(reader, Soldier.class);

            try {
                addSoldier(soldier);
            } catch (final UnexpectedTileContentException e) {
                Log.e(TAG, "Adding soldier failed!", e);
            }
        }
        reader.endArray();
    } catch (final Exception e) {
        Log.e(TAG, "Loading game storage failed!", e);
    } finally {
        try {
            reader.close();
        } catch (final IOException e) {
            Log.e(TAG, "Closing reader failed!", e);
        }
    }
}

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

License:Apache License

public static DirectedWeightedMultigraph<Node, DefaultLink> readGraph(JsonReader reader) throws IOException {

    DirectedWeightedMultigraph<Node, DefaultLink> graph = new DirectedWeightedMultigraph<Node, DefaultLink>(
            LabeledLink.class);

    Node n, source, target;//ww  w .j a v  a 2s.c  o  m
    DefaultLink l;
    Double[] weight = new Double[1];
    HashMap<String, Node> idToNodes = new HashMap<>();

    reader.beginObject();
    while (reader.hasNext()) {
        String key = reader.nextName();
        if (key.equals("nodes") && reader.peek() != JsonToken.NULL) {
            reader.beginArray();
            while (reader.hasNext()) {
                n = readNode(reader);
                if (n != null) {
                    idToNodes.put(n.getId(), n);
                    graph.addVertex(n);
                }
            }
            reader.endArray();
        } else if (key.equals("links") && reader.peek() != JsonToken.NULL) {
            reader.beginArray();
            while (reader.hasNext()) {
                l = readLink(reader, weight);
                if (l != null) {
                    source = idToNodes.get(LinkIdFactory.getLinkSourceId(l.getId()));
                    target = idToNodes.get(LinkIdFactory.getLinkTargetId(l.getId()));
                    if (source != null && target != null) {
                        graph.addEdge(source, target, l);
                        if (weight[0] != null)
                            graph.setEdgeWeight(l, weight[0].doubleValue());
                    }
                }
            }
            reader.endArray();
        } else {
            reader.skipValue();
        }
    }
    reader.endObject();

    return graph;
}

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

License:Apache License

private static Node readNode(JsonReader reader) throws IOException {

    String id = null;/*from  w ww . jav a 2  s . co  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;/*w w w.j a  va2  s  .  co  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;/*  ww w  . jav 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 .ja va2  s  . c o  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  .  j a v a 2  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 ww. ja  v a 2 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;// w  ww  . ja va  2  s.  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;
}

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

License:Apache License

private static Map<String, String> readMappingToSourceColumn(JsonReader reader) throws IOException {
    String id = null;/*from  w w w .j  ava2s  . co  m*/
    String sourceColumnId = 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("sourceColumnId") && reader.peek() != JsonToken.NULL) {
            sourceColumnId = reader.nextString();
        } else {
            reader.skipValue();
        }
    }
    reader.endObject();

    Map<String, String> mapping = new HashMap<>();
    mapping.put(id, sourceColumnId);
    return mapping;
}