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:org.komodo.rest.relational.json.BasicEntitySerializer.java

License:Open Source License

/**
 * {@inheritDoc}/* w  ww .  j av a 2s .  com*/
 *
 * @see org.komodo.rest.relational.json.AbstractEntitySerializer#read(com.google.gson.stream.JsonReader)
 */
@Override
public T read(final JsonReader in) throws IOException {
    final T entity = createEntity();

    beginRead(in);

    while (in.hasNext()) {
        final String name = in.nextName();

        if (readExtension(name, entity, in) != null)
            continue;

        if (PROPERTIES.equals(name))
            readProperties(in, entity);
        else if (LINKS.equals(name))
            readLinks(in, entity);
        else {
            JsonToken token = in.peek();
            switch (token) {
            case BOOLEAN:
                entity.addTuple(name, in.nextBoolean());
                break;
            case NUMBER: {
                double value = in.nextDouble();
                if (value % 1 == 0)
                    entity.addTuple(name, (int) value);
                else
                    entity.addTuple(name, value);
                break;
            }
            case STRING:
                entity.addTuple(name, in.nextString());
                break;
            case NULL:
                in.nextNull();
                entity.addTuple(name, null);
                break;
            case BEGIN_ARRAY:
                final Object[] value = BUILDER.fromJson(in, Object[].class);

                //
                // BUILDER always converts json numbers to double regardless
                // of them being integers so need to do some checking and on-the-fly
                // conversion
                //
                for (int i = 0; i < value.length; ++i) {
                    if (value[i] instanceof Double && ((double) value[i] % 1) == 0)
                        value[i] = ((Double) value[i]).intValue();
                }

                entity.addTuple(name, value);
                break;
            default:
                throw new IOException(Messages.getString(Messages.Error.UNEXPECTED_JSON_TOKEN, name));
            }
        }
    }

    if (!isComplete(entity)) {
        throw new IOException(Messages.getString(INCOMPLETE_JSON, getClass().getSimpleName()));
    }

    endRead(in);
    return entity;
}

From source file:org.komodo.rest.relational.json.ConnectionAttributesSerializer.java

License:Open Source License

/**
 * {@inheritDoc}//w ww. j  a  va2  s .  co  m
 *
 * @see com.google.gson.TypeAdapter#read(com.google.gson.stream.JsonReader)
 */
@Override
public KomodoConnectionAttributes read(final JsonReader in) throws IOException {
    final KomodoConnectionAttributes ConnectionAttr = createEntity();
    in.beginObject();

    while (in.hasNext()) {
        final String name = in.nextName();

        switch (name) {
        case KomodoConnectionAttributes.JNDI_LABEL:
            ConnectionAttr.setJndi(in.nextString());
            break;
        case KomodoConnectionAttributes.JDBC_LABEL:
            ConnectionAttr.setJdbc(in.nextBoolean());
            break;
        case KomodoConnectionAttributes.DRIVER_LABEL:
            ConnectionAttr.setDriver(in.nextString());
            break;
        case KomodoConnectionAttributes.PARAMETERS_LABEL:
            Map<String, String> parameters = BUILDER.fromJson(in, Map.class);
            for (Map.Entry<String, String> parameter : parameters.entrySet()) {
                ConnectionAttr.setParameter(parameter.getKey(), parameter.getValue());
            }
            break;
        default:
            throw new IOException(Messages.getString(UNEXPECTED_JSON_TOKEN, name));
        }
    }

    in.endObject();

    return ConnectionAttr;
}

From source file:org.komodo.rest.relational.json.DataserviceUpdateAttributesSerializer.java

License:Open Source License

/**
 * {@inheritDoc}//from  w ww. j  ava2 s. c om
 *
 * @see com.google.gson.TypeAdapter#read(com.google.gson.stream.JsonReader)
 */
@Override
public KomodoDataserviceUpdateAttributes read(final JsonReader in) throws IOException {
    final KomodoDataserviceUpdateAttributes updateAttrs = new KomodoDataserviceUpdateAttributes();
    in.beginObject();

    while (in.hasNext()) {
        final String name = in.nextName();

        switch (name) {
        case KomodoDataserviceUpdateAttributes.DATASERVICE_NAME_LABEL:
            updateAttrs.setDataserviceName(in.nextString());
            break;
        case KomodoDataserviceUpdateAttributes.DATASERVICE_TABLE_PATH_LABEL:
            updateAttrs.setTablePath(in.nextString());
            break;
        case KomodoDataserviceUpdateAttributes.DATASERVICE_MODEL_SOURCE_PATH_LABEL:
            updateAttrs.setModelSourcePath(in.nextString());
            break;
        case KomodoDataserviceUpdateAttributes.DATASERVICE_COLUMN_NAMES_LABEL:
            List<String> colNames = BUILDER.fromJson(in, List.class);
            updateAttrs.setColumnNames(colNames);
            break;
        case KomodoDataserviceUpdateAttributes.DATASERVICE_RH_TABLE_PATH_LABEL:
            updateAttrs.setRhTablePath(in.nextString());
            break;
        case KomodoDataserviceUpdateAttributes.DATASERVICE_RH_MODEL_SOURCE_PATH_LABEL:
            updateAttrs.setRhModelSourcePath(in.nextString());
            break;
        case KomodoDataserviceUpdateAttributes.DATASERVICE_RH_COLUMN_NAMES_LABEL:
            List<String> rhColNames = BUILDER.fromJson(in, List.class);
            updateAttrs.setRhColumnNames(rhColNames);
            break;
        case KomodoDataserviceUpdateAttributes.DATASERVICE_JOIN_TYPE_LABEL:
            updateAttrs.setJoinType(in.nextString());
            break;
        case KomodoDataserviceUpdateAttributes.DATASERVICE_CRITERIA_PREDICATES_LABEL:
            List<Map<String, String>> predicates = BUILDER.fromJson(in, List.class);
            updateAttrs.setCriteriaPredicates(predicates);
            break;
        case KomodoDataserviceUpdateAttributes.DATASERVICE_VIEW_DDL_LABEL:
            updateAttrs.setViewDdl(in.nextString());
            break;
        default:
            throw new IOException(Messages.getString(UNEXPECTED_JSON_TOKEN, name));
        }
    }

    in.endObject();

    return updateAttrs;
}

From source file:org.komodo.rest.relational.json.DataSourceJdbcTableAttributesSerializer.java

License:Open Source License

/**
 * {@inheritDoc}//w w  w.jav a2  s  . c  o m
 *
 * @see com.google.gson.TypeAdapter#read(com.google.gson.stream.JsonReader)
 */
@Override
public KomodoDataSourceJdbcTableAttributes read(final JsonReader in) throws IOException {
    final KomodoDataSourceJdbcTableAttributes updateAttrs = new KomodoDataSourceJdbcTableAttributes();
    in.beginObject();

    while (in.hasNext()) {
        final String name = in.nextName();

        switch (name) {
        case KomodoDataSourceJdbcTableAttributes.DATA_SOURCE_NAME_LABEL:
            updateAttrs.setDataSourceName(in.nextString());
            break;
        case KomodoDataSourceJdbcTableAttributes.CATALOG_FILTER_LABEL:
            updateAttrs.setCatalogFilter(in.nextString());
            break;
        case KomodoDataSourceJdbcTableAttributes.SCHEMA_FILTER_LABEL:
            updateAttrs.setSchemaFilter(in.nextString());
            break;
        case KomodoDataSourceJdbcTableAttributes.TABLE_FILTER_LABEL:
            updateAttrs.setTableFilter(in.nextString());
            break;
        default:
            throw new IOException(Messages.getString(UNEXPECTED_JSON_TOKEN, name));
        }
    }

    in.endObject();

    return updateAttrs;
}

From source file:org.komodo.rest.relational.json.FileAttributesSerializer.java

License:Open Source License

/**
 * {@inheritDoc}/*from   www  .j av  a  2 s . co  m*/
 *
 * @see com.google.gson.TypeAdapter#read(com.google.gson.stream.JsonReader)
 */
@Override
public KomodoFileAttributes read(final JsonReader in) throws IOException {
    final KomodoFileAttributes fileAttr = new KomodoFileAttributes();
    in.beginObject();

    while (in.hasNext()) {
        final String name = in.nextName();

        if (readContent(in, fileAttr, name) != null)
            continue;

        switch (name) {
        case KomodoFileAttributes.NAME_LABEL:
            fileAttr.setName(in.nextString());
            break;
        default:
            throw new IOException(Messages.getString(UNEXPECTED_JSON_TOKEN, name));
        }
    }

    in.endObject();

    return fileAttr;
}

From source file:org.komodo.rest.relational.json.ImportExportStatusSerializer.java

License:Open Source License

/**
 * {@inheritDoc}/*  w  w w.  j  a  v a2 s. c om*/
 *
 * @see com.google.gson.TypeAdapter#read(com.google.gson.stream.JsonReader)
 */
@Override
public ImportExportStatus read(final JsonReader in) throws IOException {
    final ImportExportStatus status = new ImportExportStatus();
    in.beginObject();

    while (in.hasNext()) {
        final String name = in.nextName();

        switch (name) {
        case ImportExportStatus.NAME_LABEL:
            status.setName(in.nextString());
            break;
        case ImportExportStatus.TYPE_LABEL:
            status.setType(in.nextString());
            break;
        case ImportExportStatus.SUCCESS_LABEL:
            status.setSuccess(in.nextBoolean());
            break;
        case ImportExportStatus.DOWNLOADABLE_LABEL:
            status.setDownloadable(in.nextBoolean());
            break;
        case ImportExportStatus.CONTENT_LABEL:
            status.setContent(in.nextString());
            break;
        case ImportExportStatus.MESSAGE_LABEL:
            status.setMessage(in.nextString());
            break;
        case ImportExportStatus.DOWNLOADABLE_SIZE_LABEL:
            status.setDownloadableSize(in.nextLong());
            break;
        default:
            throw new IOException(Messages.getString(UNEXPECTED_JSON_TOKEN, name));
        }
    }

    in.endObject();

    return status;
}

From source file:org.komodo.rest.relational.json.PathAttributeSerializer.java

License:Open Source License

protected String readPath(JsonReader in, String name, T pathAttr) throws IOException {
    if (KomodoPathAttribute.PATH_LABEL.equals(name)) {
        String path = in.nextString();
        pathAttr.setPath(path);/*from  w  w  w  .ja  va 2  s .c  o  m*/
        return path;
    }

    return null;
}

From source file:org.komodo.rest.relational.json.QueryAttributeSerializer.java

License:Open Source License

/**
 * {@inheritDoc}//  ww w  .  java 2  s  . c o  m
 *
 * @see com.google.gson.TypeAdapter#read(com.google.gson.stream.JsonReader)
 */
@Override
public KomodoQueryAttribute read(final JsonReader in) throws IOException {
    final KomodoQueryAttribute queryAttr = new KomodoQueryAttribute();
    in.beginObject();

    while (in.hasNext()) {
        final String name = in.nextName();
        switch (name) {
        case KomodoQueryAttribute.QUERY_LABEL:
            queryAttr.setQuery(in.nextString());
            break;
        case KomodoQueryAttribute.TARGET_LABEL:
            queryAttr.setTarget(in.nextString());
            break;
        case KomodoQueryAttribute.LIMIT_LABEL:
            queryAttr.setLimit(in.nextInt());
            break;
        case KomodoQueryAttribute.OFFSET_LABEL:
            queryAttr.setOffset(in.nextInt());
            break;
        }
    }

    in.endObject();

    return queryAttr;
}

From source file:org.komodo.rest.relational.json.QueryColumnSerializer.java

License:Open Source License

/**
 * {@inheritDoc}//from   w ww . j  av  a 2  s .co  m
 *
 * @see com.google.gson.TypeAdapter#read(com.google.gson.stream.JsonReader)
 */
@Override
public RestQueryColumn read(final JsonReader in) throws IOException {
    final RestQueryColumn queryColumn = new RestQueryColumn();
    in.beginObject();

    while (in.hasNext()) {
        final String name = in.nextName();

        switch (name) {
        case RestQueryColumn.NAME_LABEL:
            queryColumn.setName(in.nextString());
            break;
        case RestQueryColumn.LABEL_LABEL:
            queryColumn.setLabel(in.nextString());
            break;
        case RestQueryColumn.TYPE_LABEL:
            queryColumn.setType(in.nextString());
            break;
        default:
            throw new IOException(Messages.getString(UNEXPECTED_JSON_TOKEN, name));
        }
    }

    in.endObject();

    return queryColumn;
}

From source file:org.komodo.rest.relational.json.SavedSearcherSerializer.java

License:Open Source License

/**
 * {@inheritDoc}/*from  w  w w  .  j a  va  2s  .c o  m*/
 *
 * @see com.google.gson.TypeAdapter#read(com.google.gson.stream.JsonReader)
 */
@Override
public KomodoSavedSearcher read(final JsonReader in) throws IOException {
    final KomodoSavedSearcher status = new KomodoSavedSearcher();
    in.beginObject();

    while (in.hasNext()) {
        final String name = in.nextName();

        switch (name) {
        case KomodoSavedSearcher.NAME_LABEL:
            status.setName(in.nextString());
            break;
        case KomodoSavedSearcher.QUERY_LABEL:
            status.setQuery(in.nextString());
            break;
        case KomodoSavedSearcher.PARAMETER_LABEL:
            final String[] parameters = BUILDER.fromJson(in, String[].class);
            status.setParameters(Arrays.asList(parameters));
            break;
        default:
            throw new IOException(Messages.getString(UNEXPECTED_JSON_TOKEN, name));
        }
    }

    in.endObject();

    return status;
}