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:com.sap.core.odata.core.ep.consumer.JsonLinkConsumer.java

License:Apache License

/**
 * Reads single link with format <code>{"d":{"uri":"http://somelink"}}</code>
 * or <code>{"uri":"http://somelink"}</code>.
 * @param reader//from w ww.java 2s .  co  m
 * @param entitySet
 * @return link as string object
 * @throws EntityProviderException
 */
public String readLink(final JsonReader reader, final EdmEntitySet entitySet) throws EntityProviderException {
    try {
        String result;
        reader.beginObject();
        String nextName = reader.nextName();
        final boolean wrapped = FormatJson.D.equals(nextName);
        if (wrapped) {
            reader.beginObject();
            nextName = reader.nextName();
        }
        if (FormatJson.URI.equals(nextName) && reader.peek() == JsonToken.STRING) {
            result = reader.nextString();
        } else {
            throw new EntityProviderException(EntityProviderException.INVALID_CONTENT
                    .addContent(FormatJson.D + " or " + FormatJson.URI).addContent(nextName));
        }
        reader.endObject();
        if (wrapped) {
            reader.endObject();
        }

        reader.peek(); // to assert end of structure or document

        return result;
    } catch (final IOException e) {
        throw new EntityProviderException(
                EntityProviderException.EXCEPTION_OCCURRED.addContent(e.getClass().getSimpleName()), e);
    } catch (final IllegalStateException e) {
        throw new EntityProviderException(
                EntityProviderException.EXCEPTION_OCCURRED.addContent(e.getClass().getSimpleName()), e);
    }
}

From source file:com.sap.core.odata.core.ep.consumer.JsonLinkConsumer.java

License:Apache License

private List<String> readLinksArray(final JsonReader reader) throws IOException, EntityProviderException {
    List<String> links = new ArrayList<String>();

    reader.beginArray();/*from  www. j  ava2 s.  c  om*/
    while (reader.hasNext()) {
        reader.beginObject();
        String nextName = reader.nextName();
        if (FormatJson.URI.equals(nextName) && reader.peek() == JsonToken.STRING) {
            links.add(reader.nextString());
        } else {
            throw new EntityProviderException(
                    EntityProviderException.INVALID_CONTENT.addContent(FormatJson.URI).addContent(nextName));
        }
        reader.endObject();
    }
    reader.endArray();

    return links;
}

From source file:com.sap.core.odata.core.ep.consumer.JsonPropertyConsumer.java

License:Apache License

private Object readSimpleProperty(final JsonReader reader, final EntityPropertyInfo entityPropertyInfo,
        final Object typeMapping) throws EdmException, EntityProviderException, IOException {
    final EdmSimpleType type = (EdmSimpleType) entityPropertyInfo.getType();
    Object value = null;//  w  w  w.jav  a2s  .  c om
    final JsonToken tokenType = reader.peek();
    if (tokenType == JsonToken.NULL) {
        reader.nextNull();
    } else {
        switch (EdmSimpleTypeKind.valueOf(type.getName())) {
        case Boolean:
            if (tokenType == JsonToken.BOOLEAN) {
                value = reader.nextBoolean();
                value = value.toString();
            } else {
                throw new EntityProviderException(EntityProviderException.INVALID_PROPERTY_VALUE
                        .addContent(entityPropertyInfo.getName()));
            }
            break;
        case Byte:
        case SByte:
        case Int16:
        case Int32:
            if (tokenType == JsonToken.NUMBER) {
                value = reader.nextInt();
                value = value.toString();
            } else {
                throw new EntityProviderException(EntityProviderException.INVALID_PROPERTY_VALUE
                        .addContent(entityPropertyInfo.getName()));
            }
            break;
        default:
            if (tokenType == JsonToken.STRING) {
                value = reader.nextString();
            } else {
                throw new EntityProviderException(EntityProviderException.INVALID_PROPERTY_VALUE
                        .addContent(entityPropertyInfo.getName()));
            }
            break;
        }
    }

    final Class<?> typeMappingClass = typeMapping == null ? type.getDefaultType() : (Class<?>) typeMapping;
    return type.valueOfString((String) value, EdmLiteralKind.JSON, entityPropertyInfo.getFacets(),
            typeMappingClass);
}

From source file:com.sap.core.odata.core.ep.consumer.JsonPropertyConsumer.java

License:Apache License

@SuppressWarnings("unchecked")
private Object readComplexProperty(final JsonReader reader, final EntityComplexPropertyInfo complexPropertyInfo,
        final Object typeMapping) throws EdmException, EntityProviderException, IOException {
    if (reader.peek().equals(JsonToken.NULL)) {
        reader.nextNull();/*from   www.  j a va  2  s .c  o  m*/
        if (complexPropertyInfo.isMandatory()) {
            throw new EntityProviderException(
                    EntityProviderException.INVALID_PROPERTY_VALUE.addContent(complexPropertyInfo.getName()));
        }
        return null;
    }

    reader.beginObject();
    Map<String, Object> data = new HashMap<String, Object>();

    Map<String, Object> mapping;
    if (typeMapping != null) {
        if (typeMapping instanceof Map) {
            mapping = (Map<String, Object>) typeMapping;
        } else {
            throw new EntityProviderException(
                    EntityProviderException.INVALID_MAPPING.addContent(complexPropertyInfo.getName()));
        }
    } else {
        mapping = new HashMap<String, Object>();
    }

    while (reader.hasNext()) {
        String childName = reader.nextName();
        if (FormatJson.METADATA.equals(childName)) {
            reader.beginObject();
            childName = reader.nextName();
            if (!FormatJson.TYPE.equals(childName)) {
                throw new EntityProviderException(EntityProviderException.MISSING_ATTRIBUTE
                        .addContent(FormatJson.TYPE).addContent(FormatJson.METADATA));
            }
            String actualTypeName = reader.nextString();
            String expectedTypeName = complexPropertyInfo.getType().getNamespace() + Edm.DELIMITER
                    + complexPropertyInfo.getType().getName();
            if (!expectedTypeName.equals(actualTypeName)) {
                throw new EntityProviderException(EntityProviderException.INVALID_ENTITYTYPE
                        .addContent(expectedTypeName).addContent(actualTypeName));
            }
            reader.endObject();
        } else {
            EntityPropertyInfo childPropertyInfo = complexPropertyInfo.getPropertyInfo(childName);
            if (childPropertyInfo == null) {
                throw new EntityProviderException(
                        EntityProviderException.INVALID_PROPERTY.addContent(childName));
            }
            Object childData = readPropertyValue(reader, childPropertyInfo, mapping.get(childName));
            if (data.containsKey(childName)) {
                throw new EntityProviderException(
                        EntityProviderException.DOUBLE_PROPERTY.addContent(childName));
            }
            data.put(childName, childData);
        }
    }
    reader.endObject();
    return data;
}

From source file:com.sap.core.odata.core.ep.consumer.JsonServiceDocumentConsumer.java

License:Apache License

private void readEntitySets(final JsonReader reader) throws IOException, EntityProviderException, EdmException {
    while (reader.hasNext()) {
        currentHandledObjectName = reader.nextString();
        if (currentHandledObjectName != null) {
            // Looking for the last dot: "\\.(?=[^.]+$)"
            String[] names = currentHandledObjectName
                    .split("\\" + Edm.DELIMITER + "(?=[^" + Edm.DELIMITER + "]+$)");
            if (names.length == 1) {
                EntitySet entitySet = new EntitySet().setName(names[0]);
                EntityContainerInfo container = new EntityContainerInfo().setDefaultEntityContainer(true);
                EdmEntitySetInfo entitySetInfo = new EdmEntitySetInfoImplProv(entitySet, container);
                entitySets.add(entitySetInfo);
            } else {
                EntitySet entitySet = new EntitySet().setName(names[1]);
                EntityContainerInfo container = new EntityContainerInfo().setName(names[0])
                        .setDefaultEntityContainer(false);
                EdmEntitySetInfo entitySetInfo = new EdmEntitySetInfoImplProv(entitySet, container);
                entitySets.add(entitySetInfo);
            }/*from www.  j  a va 2  s .c  o m*/
        }
    }
}

From source file:com.scvngr.levelup.core.model.factory.json.PermissionsRequestJsonFactory.java

License:Apache License

@Override
protected void onBuildFactory(@NonNull final GsonBuilder gsonBuilder) {
    gsonBuilder.registerTypeAdapter(PermissionsRequest.State.class,
            new TypeAdapter<PermissionsRequest.State>() {

                @Override//from  ww  w. jav  a2s.com
                public State read(final JsonReader reader) throws IOException {
                    return State.forString(NullUtils.nonNullContract(reader.nextString()));
                }

                @Override
                public void write(final JsonWriter writer, final State value) throws IOException {
                    writer.value(value.toString());
                }
            });
}

From source file:com.seleritycorp.common.base.coreservices.RawCoreServiceClient.java

License:Apache License

private void pushToWriter(JsonReader reader, JsonWriter writer) throws IOException {
    int count = 0;
    boolean isObject = reader.peek() == JsonToken.BEGIN_OBJECT;
    do {//from   w ww .j  a  v a 2s. com
        JsonToken jsToken = reader.peek();
        switch (jsToken) {
        case BEGIN_ARRAY:
            reader.beginArray();
            writer.beginArray();
            if (!isObject) {
                count++;
            }
            break;
        case END_ARRAY:
            reader.endArray();
            writer.endArray();
            if (!isObject) {
                count--;
            }
            break;
        case BEGIN_OBJECT:
            reader.beginObject();
            writer.beginObject();
            if (isObject) {
                count++;
            }
            break;
        case END_OBJECT:
            reader.endObject();
            writer.endObject();
            if (isObject) {
                count--;
            }
            break;
        case NAME:
            String name = reader.nextName();
            writer.name(name);
            break;
        case STRING:
            String stringValue = reader.nextString();
            writer.value(stringValue);
            break;
        case NUMBER:
            String numValue = reader.nextString();
            writer.value(new BigDecimal(numValue));
            break;
        case BOOLEAN:
            boolean boolValue = reader.nextBoolean();
            writer.value(boolValue);
            break;
        case NULL:
            reader.nextNull();
            writer.nullValue();
            break;
        case END_DOCUMENT:
            return;
        default:
            return;
        }
    } while (count != 0);
}

From source file:com.sencko.basketball.stats.advanced.adapters.ActionAdapter.java

@Override
public Action read(JsonReader reader) throws IOException {
    switch (reader.peek()) {
    case NULL: {/*  w w w.java2  s . c o m*/
        reader.nextNull();
        return null;
    }
    case STRING: {
        String stringValue = reader.nextString().trim();

        if (stringValue.length() == 0) {
            return null;
        } else {
            Matcher matcher = fullAction.matcher(stringValue);
            if (matcher.matches()) {
                Actor actor = new Actor();
                actor.setName(matcher.group(2));
                actor.setNumber(Integer.parseInt(matcher.group(1)));
                Action action = new Action();
                action.setActor(actor);
                String desc = matcher.group(3);
                action.setDescription(desc);
                return action;
            } else {
                Action action = new Action();
                action.setDescription(stringValue);
                return action;
            }
        }
    }
    }
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}

From source file:com.sencko.basketball.stats.advanced.adapters.IntegerAdapter.java

@Override
public Integer read(JsonReader reader) throws IOException {
    switch (reader.peek()) {
    case NULL: {/*from   www  . j a v a2s . c om*/
        reader.nextNull();
        break;
    }
    case NUMBER: {
        return reader.nextInt();
    }
    case STRING: {
        String stringValue = reader.nextString().trim();
        if (stringValue.length() == 0) {
            return null;
        } else {
            Matcher matcher = pattern.matcher(stringValue);
            if (matcher.matches()) {
                Integer ret = Integer.parseInt(matcher.group(1)) * 60 + Integer.parseInt(matcher.group(2));
                //  System.out.println(stringValue +" \t" + ret);
                return ret;
            }
        }
        return Integer.parseInt(stringValue);
    }
    }
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}

From source file:com.sencko.basketball.stats.advanced.adapters.StringAdapter.java

@Override
public String read(JsonReader reader) throws IOException {
    switch (reader.peek()) {
    case NULL: {//from  www .j  a va2  s  .c o m
        reader.nextNull();
        return null;
    }
    case NUMBER: {
        return String.valueOf(reader.nextInt());
    }
    case STRING: {
        String stringValue = reader.nextString().trim();
        if (stringValue.length() == 0) {
            return null;
        } else {
            //    System.out.println(stringValue);
            return stringValue;
        }
    }
    }
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}