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:edu.rpi.shuttles.data.RPIShuttleDataProvider.java

License:Apache License

public SparseArray<Stop> fetchStops() throws IOException {
    // Download stop data.
    URL stopsURL = new URL(mStopsUrl);
    URLConnection stopsConnection = stopsURL.openConnection();
    stopsConnection.setRequestProperty("User-Agent", mUserAgent);
    InputStream in = new BufferedInputStream(stopsConnection.getInputStream());
    JsonReader reader = new JsonReader(new InputStreamReader(in));
    mStops.clear();/*  ww  w  . j  av a  2 s. c  om*/
    mRouteStopsMap.clear();

    reader.beginArray();
    while (reader.hasNext()) {
        Stop stop = readStop(reader);
        mStops.put(stop.id, stop);
    }
    reader.endArray();

    reader.close();
    return mStops;
}

From source file:edu.rpi.shuttles.data.RPIShuttleDataProvider.java

License:Apache License

private Stop readStop(JsonReader reader) throws IOException {
    Stop stop = new Stop();
    ArrayList<Integer> routes = new ArrayList<Integer>();
    reader.beginObject();//from  ww w .j a  va2 s  . c o m
    reader.nextName();
    reader.beginObject();
    while (reader.hasNext()) {
        String key = reader.nextName();
        if (key.equals("id")) {
            stop.id = reader.nextInt();
        } else if (key.equals("name")) {
            stop.name = reader.nextString();
        } else if (key.equals("short_name")) {
            stop.short_name = reader.nextString();
        } else if (key.equals("enabled")) {
            stop.enabled = reader.nextBoolean();
        } else if (key.equals("latitude")) {
            stop.latitude = reader.nextDouble();
        } else if (key.equals("longitude")) {
            stop.longitude = reader.nextDouble();
        } else if (key.equals("routes")) {
            reader.beginArray();
            while (reader.hasNext()) {
                reader.beginObject();
                while (reader.hasNext()) {
                    if (reader.nextName().equals("id")) {
                        routes.add(reader.nextInt());
                    } else {
                        reader.skipValue();
                    }
                }
                reader.endObject();
            }
            reader.endArray();
        } else {
            stop.extraAttributes.put(key, reader.nextString());
        }

    }
    reader.endObject();
    reader.endObject();
    Log.d("RPIDataProvider", String.format("Pulling stop %S (%S)...", Integer.toString(stop.id), stop.name));
    for (int i = 0; i < routes.size(); i++) {
        ArrayList<Integer> route = mRouteStopsMap.get(routes.get(i), new ArrayList<Integer>());
        route.add(stop.id);
        mRouteStopsMap.put(routes.get(i), route);
    }
    return stop;
}

From source file:edu.rpi.shuttles.data.RPIShuttleDataProvider.java

License:Apache License

public SparseArray<Route> fetchRoutes() throws IOException {
    URL routesURL = new URL(mRoutesUrl);
    URLConnection routesConnection = routesURL.openConnection();
    routesConnection.setRequestProperty("User-Agent", mUserAgent);
    InputStream in = new BufferedInputStream(routesConnection.getInputStream());

    URL routePathsURL = new URL(mRoutePathsUrl);
    URLConnection routePathsConnection = routePathsURL.openConnection();
    routePathsConnection.setRequestProperty("User-Agent", mUserAgent);
    InputStream pathInputStream = new BufferedInputStream(routePathsConnection.getInputStream());

    mRoutes.clear();/*from  w ww.  jav  a 2s.c  om*/
    JsonReader routesReader = new JsonReader(new InputStreamReader(in));
    routesReader.beginArray();
    while (routesReader.hasNext()) {
        Route route = readRoute(routesReader);
        mRoutes.put(route.id, route);
    }
    routesReader.endArray();

    JsonReader routePathReader = new JsonReader(new InputStreamReader(pathInputStream));
    routePathReader.beginObject();
    while (routePathReader.hasNext()) {
        Log.d("RouteDataProvider", "Entering L1.");
        String key = routePathReader.nextName();
        Log.d("RouteDataProvider", String.format("L1: %s", key));
        if (key.equals("routes")) {
            Log.d("RouteDataProvider", "Found 'routes' tag.");
            routePathReader.beginArray();
            while (routePathReader.hasNext()) {
                populateRoutePath(routePathReader);
            }
            routePathReader.endArray();
        } else {
            Log.d("RouteDataProvider", "Found other tag.");
            routePathReader.skipValue();
        }
    }
    routePathReader.endObject();

    return mRoutes;
}

From source file:edu.rpi.shuttles.data.RPIShuttleDataProvider.java

License:Apache License

private Route readRoute(JsonReader reader) throws IOException {
    Route route = new Route();
    reader.beginObject();/*from w  ww.j  ava  2 s . co  m*/
    reader.nextName();
    reader.beginObject();
    while (reader.hasNext()) {
        String key = reader.nextName();
        if (key.equals("id")) {
            route.id = reader.nextInt();
        } else if (key.equals("name")) {
            route.name = reader.nextString();
        } else if (key.equals("description")) {
            route.description = reader.nextString();
        } else if (key.equals("enabled")) {
            route.enabled = reader.nextBoolean();
        } else if (key.equals("color")) {
            route.map_color = reader.nextString();
        } else {
            reader.skipValue();
        }
    }
    reader.endObject();
    reader.endObject();
    Log.d("RouteDataProvider",
            String.format("Pulling route %S (%S)...", Integer.toString(route.id), route.name));
    Log.d("RouteDataProvider", String.format("Route %S (%S) has %S stops.", Integer.toString(route.id),
            route.name, Integer.toString(mRouteStopsMap.get(route.id).size())));
    return route;
}

From source file:edu.rpi.shuttles.data.RPIShuttleDataProvider.java

License:Apache License

private void populateRoutePath(JsonReader reader) throws IOException {
    ArrayList<Coordinate> path = new ArrayList<Coordinate>();
    Integer path_id = 0;//  ww  w .ja v a2s.  c  o  m
    reader.beginObject();
    while (reader.hasNext()) {
        // Process attributes of a route.
        // We have the array of coordinates making up the path of the route on a map.
        String key = reader.nextName();
        if (key.equals("coords")) {
            Double latitude = 0.0;
            Double longitude = 0.0;
            reader.beginArray();
            // Read coordinate attributes and add to path.
            while (reader.hasNext()) {
                reader.beginObject();
                // Read coordinate attributes.
                while (reader.hasNext()) {
                    String coordinate_key = reader.nextName();
                    if (coordinate_key.equals("latitude")) {
                        latitude = reader.nextDouble();
                    } else if (coordinate_key.equals("longitude")) {
                        longitude = reader.nextDouble();
                    } else {
                        reader.skipValue();
                    }
                }
                reader.endObject();
                // Add coordinate to path.
                path.add(new Coordinate(latitude, longitude));
                Log.d("CreatePoint",
                        String.format("Inserting point %S, %S", latitude.toString(), longitude.toString()));
            }
            reader.endArray();
        } else if (key.equals("id")) {
            path_id = reader.nextInt();
        } else {
            reader.skipValue();
        }
    }
    reader.endObject();
    Route route = mRoutes.get(path_id);
    route.map_polyline = path;
    mRoutes.put(path_id, route);
    Log.d("RouteDataProvider", String.format("Pulling route %S (%S) with %s coordinates...",
            Integer.toString(route.id), route.name, Integer.valueOf(route.map_polyline.size()).toString()));
}

From source file:edu.rpi.shuttles.data.RPIShuttleDataProvider.java

License:Apache License

public SparseArray<Vehicle> updateVehicleLocations() throws IOException {
    // Download vehicle location data.
    URL vehicleLocationURL = new URL(mVehicleLocationsUrl);
    URLConnection vehicleLocationConnection = vehicleLocationURL.openConnection();
    vehicleLocationConnection.setRequestProperty("User-Agent", mUserAgent);
    InputStream in = new BufferedInputStream(vehicleLocationConnection.getInputStream());
    JsonReader reader = new JsonReader(new InputStreamReader(in));
    SparseArray<Vehicle> updated_vehicles = new SparseArray<Vehicle>();

    reader.beginArray();//from  w ww . j a va 2  s  .co  m
    while (reader.hasNext()) {
        Vehicle shuttle = readVehicleLocation(reader);
        updated_vehicles.put(shuttle.id, shuttle);
        mVehicles.put(shuttle.id, shuttle);
    }
    reader.endArray();

    reader.close();
    return updated_vehicles;
}

From source file:edu.rpi.shuttles.data.RPIShuttleDataProvider.java

License:Apache License

@SuppressLint("SimpleDateFormat")
private Vehicle readVehicleLocation(JsonReader reader) throws IOException {
    Vehicle shuttle = new Vehicle();
    reader.beginObject();//from w  ww  .  j av  a 2 s  . c o  m
    reader.nextName();
    reader.beginObject();
    while (reader.hasNext()) {
        String key = reader.nextName();
        if (key.equals("id")) {
            shuttle.id = reader.nextInt();
        } else if (key.equals("name")) {
            shuttle.name = reader.nextString();
        } else if (key.equals("latest_position")) {
            reader.beginObject();
            while (reader.hasNext()) {
                key = reader.nextName();
                if (key.equals("heading")) {
                    shuttle.heading = reader.nextInt();
                } else if (key.equals("latitude")) {
                    shuttle.latitude = reader.nextDouble();
                } else if (key.equals("longitude")) {
                    shuttle.longitude = reader.nextDouble();
                } else if (key.equals("speed")) {
                    shuttle.speed = reader.nextInt();
                } else if (key.equals("timestamp")) {
                    SimpleDateFormat iso_format = new SimpleDateFormat("yyyy-MM-dd HH:mmZ");
                    try {
                        shuttle.timestamp = iso_format.parse(reader.nextString().replace("T", " "));
                    } catch (ParseException e) {
                        e.printStackTrace();
                    }
                } else if (key.equals("public_status_message")) {
                    shuttle.description = reader.nextString();
                } else if (key.equals("cardinal_point")) {
                    shuttle.cardinalPoint = reader.nextString();
                }
            }
            reader.endArray();
        } else {
            reader.skipValue();
        }
    }
    reader.endObject();
    reader.endObject();
    Log.d("RPIDataProvider",
            String.format("Updated Shuttle %S (%S) location...", Integer.toString(shuttle.id), shuttle.name));
    return shuttle;
}

From source file:es.chatclient.server.messages.adapters.ConversDataMessageTypeAdapter.java

@Override
public ConversDataMessage read(JsonReader in) throws IOException {

    final ConversDataMessage conversDate = new ConversDataMessage();
    final List<ConverData> converDataList = new ArrayList();

    in.beginObject();//  ww w .  jav a 2s . c o m

    in.nextName();

    in.beginArray();

    while (in.hasNext()) {
        in.beginObject();
        final ConverData converData = new ConverData();

        while (in.hasNext()) {
            switch (in.nextName()) {

            case "converID":
                converData.setConverID(in.nextString());

                break;

            case "converName":
                converData.setConverName(in.nextString());
                break;

            case "arrayMessages":

                final List<Message> msgList = new ArrayList();

                in.beginArray();
                while (in.hasNext()) {
                    in.beginObject();
                    final Message msg = new Message();

                    while (in.hasNext()) {
                        switch (in.nextName()) {
                        case "msgID":
                            msg.setMsgID(in.nextString());
                            break;

                        case "msgType":
                            msg.setMsgType(in.nextString());
                            break;

                        case "msgText":
                            msg.setMsgText(in.nextString());
                            break;

                        case "msgDate":
                            msg.setMsgDate(in.nextString());
                            break;

                        case "clientId":
                            msg.setClientId(in.nextString());
                            break;

                        case "converId":
                            msg.setConverId(in.nextString());
                            break;

                        case "userNick":
                            msg.setUserNick(in.nextString());
                            break;

                        } //fin switch

                    }

                    msgList.add(msg);
                    in.endObject();

                }

                in.endArray();

                converData.setConverMessages(msgList);

                break;

            default:

                break;

            }

        }

        converDataList.add(converData);
        in.endObject();

    }

    in.endArray();
    conversDate.setConverDataArray(converDataList);

    in.endObject();

    return conversDate;

}

From source file:es.chatclient.server.messages.adapters.ServerMessageTypeAdapter.java

@Override
public Message read(JsonReader in) throws IOException {

    final Message msg = new Message();

    in.beginObject();//from   w  w w  .j  a va2  s. com

    while (in.hasNext()) {
        switch (in.nextName()) {
        case "msgID":
            msg.setMsgID(in.nextString());
            break;

        case "msgType":
            msg.setMsgType(in.nextString());
            break;

        case "msgText":
            msg.setMsgText(in.nextString());
            break;

        case "msgDate":
            msg.setMsgDate(in.nextString());
            break;

        case "clientId":
            msg.setClientId(in.nextString());
            break;

        case "converId":
            msg.setConverId(in.nextString());
            break;

        case "userNick":
            msg.setUserNick(in.nextString());
            break;

        } //fin switch

    }

    in.endObject();

    return msg;

}

From source file:eu.crushedpixel.littlstar.api.gson.ResponseWrapperTypeAdapter.java

License:Apache License

@Override
public ResponseWrapper<T> read(JsonReader in) throws IOException {
    Meta meta = null;//from   w w w.  j ava2 s .c om
    Pagination pagination = null;
    T data = null;

    in.beginObject();

    while (in.hasNext()) { //iterate over all array entries
        String key = in.nextName();

        if ("meta".equals(key)) {
            meta = LittlstarApiClient.GSON.fromJson(in, Meta.class);

        } else if ("pagination".equals(key)) {
            pagination = LittlstarApiClient.GSON.fromJson(in, Pagination.class);

        } else if ("data".equals(key)) {
            data = LittlstarApiClient.GSON.fromJson(in, wrappedClass);
        }
    }

    in.endObject();

    return new ResponseWrapper<T>(meta, pagination, data);
}