Example usage for com.fasterxml.jackson.core JsonParser getLongValue

List of usage examples for com.fasterxml.jackson.core JsonParser getLongValue

Introduction

In this page you can find the example usage for com.fasterxml.jackson.core JsonParser getLongValue.

Prototype

public abstract long getLongValue() throws IOException, JsonParseException;

Source Link

Document

Numeric accessor that can be called when the current token is of type JsonToken#VALUE_NUMBER_INT and it can be expressed as a Java long primitive type.

Usage

From source file:com.tlongdev.bktf.interactor.TlongdevPriceListInteractor.java

private ContentValues buildContentValues(JsonParser parser) throws IOException {
    ContentValues values = new ContentValues();

    int defindex = 0;
    int quality = 0;
    int tradable = 0;
    int craftable = 0;
    double value = 0;
    Double high = null;//from   w ww. j a v a  2s .  c  om
    double raw = 0;

    while (parser.nextToken() != JsonToken.END_OBJECT) {
        parser.nextToken();
        switch (parser.getCurrentName()) {
        case "defindex":
            Item item = new Item();
            item.setDefindex(parser.getIntValue());
            defindex = item.getFixedDefindex();
            values.put(PriceEntry.COLUMN_DEFINDEX, defindex);
            break;
        case "quality":
            quality = parser.getIntValue();
            values.put(PriceEntry.COLUMN_ITEM_QUALITY, quality);
            break;
        case "tradable":
            tradable = parser.getIntValue();
            values.put(PriceEntry.COLUMN_ITEM_TRADABLE, tradable);
            break;
        case "craftable":
            craftable = parser.getIntValue();
            values.put(PriceEntry.COLUMN_ITEM_CRAFTABLE, craftable);
            break;
        case "price_index":
            values.put(PriceEntry.COLUMN_PRICE_INDEX, parser.getIntValue());
            break;
        case "australium":
            values.put(PriceEntry.COLUMN_AUSTRALIUM, parser.getIntValue());
            break;
        case "currency":
            values.put(PriceEntry.COLUMN_CURRENCY, parser.getText());
            break;
        case "value":
            value = parser.getDoubleValue();
            values.put(PriceEntry.COLUMN_PRICE, value);
            break;
        case "value_high":
            high = parser.getDoubleValue();
            values.put(PriceEntry.COLUMN_PRICE_HIGH, high);
            break;
        case "value_raw":
            raw = parser.getDoubleValue();
            break;
        case "last_update":
            values.put(PriceEntry.COLUMN_LAST_UPDATE, parser.getLongValue());
            break;
        case "difference":
            values.put(PriceEntry.COLUMN_DIFFERENCE, parser.getDoubleValue());
            break;
        }
    }

    values.put(PriceEntry.COLUMN_WEAPON_WEAR, 0);

    if (quality == Quality.UNIQUE && tradable == 1 && craftable == 1) {
        if (defindex == 143) { //buds
            Utility.putDouble(mEditor, mContext.getString(R.string.pref_buds_raw), raw);
            mEditor.apply();
        } else if (defindex == 5002) { //metal

            double highPrice = high == null ? 0 : high;

            if (highPrice > value) {
                //If the metal has a high price, save the average as raw.
                Utility.putDouble(mEditor, mContext.getString(R.string.pref_metal_raw_usd),
                        ((value + highPrice) / 2));
            } else {
                //save as raw price
                Utility.putDouble(mEditor, mContext.getString(R.string.pref_metal_raw_usd), value);
            }
            mEditor.apply();
        } else if (defindex == 5021) { //key
            Utility.putDouble(mEditor, mContext.getString(R.string.pref_key_raw), raw);
            mEditor.apply();
        }
    }

    return values;
}

From source file:com.netflix.hollow.jsonadapter.HollowJsonAdapterPrimaryKeyFinder.java

private void addObjectField(JsonParser parser, JsonToken token, HollowObjectSchema schema, String fieldName,
        StringBuilder currentFieldPath) throws IOException {
    if (token != JsonToken.FIELD_NAME) {
        int fieldPosition = schema.getPosition(fieldName);

        if (fieldPosition == -1) {
            skipObjectField(parser, token);
        } else {//w  w  w  .ja va  2s . c o  m
            int parentFieldPathLength = currentFieldPath.length();
            if (parentFieldPathLength > 0)
                currentFieldPath.append(".");
            currentFieldPath.append(fieldName);
            Integer keyFieldPosition = keyFieldPathPositions.get(currentFieldPath.toString());

            switch (token) {
            case START_ARRAY:
                skipSubArray(parser);
                break;
            case START_OBJECT:
                String referencedType = schema.getReferencedType(fieldName);
                HollowSchema referencedSchema = hollowSchemas.get(referencedType);

                if (referencedSchema.getSchemaType() == SchemaType.OBJECT)
                    addObject(parser, (HollowObjectSchema) referencedSchema, currentFieldPath);
                else
                    skipObject(parser);

                break;
            case VALUE_FALSE:
            case VALUE_TRUE:
            case VALUE_NUMBER_INT:
            case VALUE_NUMBER_FLOAT:
            case VALUE_STRING:
                switch (schema.getFieldType(fieldPosition)) {
                case BOOLEAN:
                    if (keyFieldPosition != null)
                        keyElementArray[keyFieldPosition.intValue()] = Boolean
                                .valueOf(parser.getBooleanValue());
                    break;
                case INT:
                    if (keyFieldPosition != null)
                        keyElementArray[keyFieldPosition.intValue()] = Integer.valueOf(parser.getIntValue());
                    break;
                case LONG:
                    if (keyFieldPosition != null)
                        keyElementArray[keyFieldPosition.intValue()] = Long.valueOf(parser.getLongValue());
                    break;
                case DOUBLE:
                    if (keyFieldPosition != null)
                        keyElementArray[keyFieldPosition.intValue()] = Double.valueOf(parser.getDoubleValue());
                    break;
                case FLOAT:
                    if (keyFieldPosition != null)
                        keyElementArray[keyFieldPosition.intValue()] = Float.valueOf(parser.getFloatValue());
                    break;
                case STRING:
                    if (keyFieldPosition != null)
                        keyElementArray[keyFieldPosition.intValue()] = parser.getValueAsString();
                    break;
                case REFERENCE:
                    if (keyFieldPosition != null)
                        throw new IllegalStateException("Key elements must not be REFERENCE");
                    HollowObjectSchema subSchema = (HollowObjectSchema) hollowSchemas
                            .get(schema.getReferencedType(fieldPosition));
                    currentFieldPath.append(".").append(subSchema.getFieldName(0));
                    keyFieldPosition = keyFieldPathPositions.get(currentFieldPath.toString());
                    if (keyFieldPosition != null) {
                        switch (subSchema.getFieldType(0)) {
                        case BOOLEAN:
                            if (keyFieldPosition != null)
                                keyElementArray[keyFieldPosition.intValue()] = Boolean
                                        .valueOf(parser.getBooleanValue());
                            break;
                        case INT:
                            if (keyFieldPosition != null)
                                keyElementArray[keyFieldPosition.intValue()] = Integer
                                        .valueOf(parser.getIntValue());
                            break;
                        case LONG:
                            if (keyFieldPosition != null)
                                keyElementArray[keyFieldPosition.intValue()] = Long
                                        .valueOf(parser.getLongValue());
                            break;
                        case DOUBLE:
                            if (keyFieldPosition != null)
                                keyElementArray[keyFieldPosition.intValue()] = Double
                                        .valueOf(parser.getDoubleValue());
                            break;
                        case FLOAT:
                            if (keyFieldPosition != null)
                                keyElementArray[keyFieldPosition.intValue()] = Float
                                        .valueOf(parser.getFloatValue());
                            break;
                        case STRING:
                            if (keyFieldPosition != null)
                                keyElementArray[keyFieldPosition.intValue()] = parser.getValueAsString();
                            break;
                        case REFERENCE:
                            throw new IllegalStateException("Key elements must not be REFERENCE");
                        default:
                        }
                    }

                default:
                }
            case VALUE_NULL:
                break;
            default:
            }

            currentFieldPath.setLength(parentFieldPathLength);
        }
    }
}

From source file:pl.selvin.android.syncframework.content.BaseContentProvider.java

protected boolean Sync(String service, String scope, String params) {
    final Date start = new Date();
    boolean hasError = false;
    if (params == null)
        params = "";
    final SQLiteDatabase db = mDB.getWritableDatabase();
    final ArrayList<TableInfo> notifyTableInfo = new ArrayList<TableInfo>();

    final String download = String.format(contentHelper.DOWNLOAD_SERVICE_URI, service, scope, params);
    final String upload = String.format(contentHelper.UPLOAD_SERVICE_URI, service, scope, params);
    final String scopeServerBlob = String.format("%s.%s.%s", service, scope, _.serverBlob);
    String serverBlob = null;/*  w w  w  .  ja v  a2s.c om*/
    Cursor cur = db.query(BlobsTable.NAME, new String[] { BlobsTable.C_VALUE }, BlobsTable.C_NAME + "=?",
            new String[] { scopeServerBlob }, null, null, null);
    final String originalBlob;
    if (cur.moveToFirst()) {
        originalBlob = serverBlob = cur.getString(0);
    } else {
        originalBlob = null;
    }
    cur.close();
    db.beginTransaction();
    try {
        boolean nochanges = false;
        if (serverBlob != null) {
            nochanges = !contentHelper.hasDirtTable(db, scope);
        }
        boolean resolve = false;
        final Metadata meta = new Metadata();
        final HashMap<String, Object> vals = new HashMap<String, Object>();
        final ContentValues cv = new ContentValues(2);
        JsonFactory jsonFactory = new JsonFactory();
        JsonToken current = null;
        String name = null;
        boolean moreChanges = false;
        boolean forceMoreChanges = false;
        do {
            final int requestMethod;
            final String serviceRequestUrl;
            final ContentProducer contentProducer;

            if (serverBlob != null) {
                requestMethod = HTTP_POST;
                if (nochanges) {
                    serviceRequestUrl = download;
                } else {
                    serviceRequestUrl = upload;
                    forceMoreChanges = true;
                }
                contentProducer = new SyncContentProducer(jsonFactory, db, scope, serverBlob, !nochanges,
                        notifyTableInfo, contentHelper);
                nochanges = true;
            } else {
                requestMethod = HTTP_GET;
                serviceRequestUrl = download;
                contentProducer = null;

            }
            if (moreChanges) {
                db.beginTransaction();
            }

            Result result = executeRequest(requestMethod, serviceRequestUrl, contentProducer);
            if (result.getStatus() == HttpStatus.SC_OK) {
                final JsonParser jp = jsonFactory.createParser(result.getInputStream());

                jp.nextToken(); // skip ("START_OBJECT(d) expected");
                jp.nextToken(); // skip ("FIELD_NAME(d) expected");
                if (jp.nextToken() != JsonToken.START_OBJECT)
                    throw new Exception("START_OBJECT(d - object) expected");
                while (jp.nextToken() != JsonToken.END_OBJECT) {
                    name = jp.getCurrentName();
                    if (_.__sync.equals(name)) {
                        current = jp.nextToken();
                        while (jp.nextToken() != JsonToken.END_OBJECT) {
                            name = jp.getCurrentName();
                            current = jp.nextToken();
                            if (_.serverBlob.equals(name)) {
                                serverBlob = jp.getText();
                            } else if (_.moreChangesAvailable.equals(name)) {
                                moreChanges = jp.getBooleanValue() || forceMoreChanges;
                                forceMoreChanges = false;
                            } else if (_.resolveConflicts.equals(name)) {
                                resolve = jp.getBooleanValue();
                            }
                        }
                    } else if (_.results.equals(name)) {
                        if (jp.nextToken() != JsonToken.START_ARRAY)
                            throw new Exception("START_ARRAY(results) expected");
                        while (jp.nextToken() != JsonToken.END_ARRAY) {
                            meta.isDeleted = false;
                            meta.tempId = null;
                            vals.clear();
                            while (jp.nextToken() != JsonToken.END_OBJECT) {
                                name = jp.getCurrentName();
                                current = jp.nextToken();
                                if (current == JsonToken.VALUE_STRING) {
                                    vals.put(name, jp.getText());
                                } else if (current == JsonToken.VALUE_NUMBER_INT) {
                                    vals.put(name, jp.getLongValue());
                                } else if (current == JsonToken.VALUE_NUMBER_FLOAT) {
                                    vals.put(name, jp.getDoubleValue());
                                } else if (current == JsonToken.VALUE_FALSE) {
                                    vals.put(name, 0L);
                                } else if (current == JsonToken.VALUE_TRUE) {
                                    vals.put(name, 1L);
                                } else if (current == JsonToken.VALUE_NULL) {
                                    vals.put(name, null);
                                } else {
                                    if (current == JsonToken.START_OBJECT) {
                                        if (_.__metadata.equals(name)) {
                                            while (jp.nextToken() != JsonToken.END_OBJECT) {
                                                name = jp.getCurrentName();
                                                jp.nextToken();
                                                if (_.uri.equals(name)) {
                                                    meta.uri = jp.getText();
                                                } else if (_.type.equals(name)) {
                                                    meta.type = jp.getText();
                                                } else if (_.isDeleted.equals(name)) {
                                                    meta.isDeleted = jp.getBooleanValue();
                                                } else if (_.tempId.equals(name)) {
                                                    meta.tempId = jp.getText();
                                                }
                                            }
                                        } else if (_.__syncConflict.equals(name)) {
                                            while (jp.nextToken() != JsonToken.END_OBJECT) {
                                                name = jp.getCurrentName();
                                                jp.nextToken();
                                                if (_.isResolved.equals(name)) {
                                                } else if (_.conflictResolution.equals(name)) {
                                                } else if (_.conflictingChange.equals(name)) {
                                                    while (jp.nextToken() != JsonToken.END_OBJECT) {
                                                        name = jp.getCurrentName();
                                                        current = jp.nextToken();
                                                        if (current == JsonToken.START_OBJECT) {
                                                            if (_.__metadata.equals(name)) {
                                                                while (jp.nextToken() != JsonToken.END_OBJECT) {

                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                            // resolve conf

                                        } else if (_.__syncError.equals(name)) {
                                            while (jp.nextToken() != JsonToken.END_OBJECT) {
                                                name = jp.getCurrentName();
                                                jp.nextToken();
                                            }
                                        }
                                    }
                                }
                            }
                            TableInfo tab = contentHelper.getTableFromType(meta.type);
                            if (meta.isDeleted) {
                                tab.DeleteWithUri(meta.uri, db);
                            } else {
                                tab.SyncJSON(vals, meta, db);
                            }
                            if (!notifyTableInfo.contains(tab))
                                notifyTableInfo.add(tab);
                        }
                    }
                }
                jp.close();
                if (!hasError) {
                    cv.clear();
                    cv.put(BlobsTable.C_NAME, scopeServerBlob);
                    cv.put(BlobsTable.C_VALUE, serverBlob);
                    cv.put(BlobsTable.C_DATE, Calendar.getInstance().getTimeInMillis());
                    cv.put(BlobsTable.C_STATE, 0);
                    db.replace(BlobsTable.NAME, null, cv);
                    db.setTransactionSuccessful();
                    db.endTransaction();
                    if (DEBUG) {
                        Log.d(TAG, "CP-Sync: commit changes");
                    }
                    final ContentResolver cr = getContext().getContentResolver();
                    for (TableInfo t : notifyTableInfo) {
                        final Uri nu = contentHelper.getDirUri(t.name, false);
                        cr.notifyChange(nu, null, false);
                        // false - do not force sync cause we are in sync
                        if (DEBUG) {
                            Log.d(TAG, "CP-Sync: notifyChange table: " + t.name + ", uri: " + nu);
                        }

                        for (String n : t.notifyUris) {
                            cr.notifyChange(Uri.parse(n), null, false);
                            if (DEBUG) {
                                Log.d(TAG, "+uri: " + n);
                            }
                        }
                    }
                    notifyTableInfo.clear();
                }
            } else {
                if (DEBUG) {
                    Log.e(TAG, "Server error in fetching remote contacts: " + result.getStatus());
                }
                hasError = true;
                break;
            }
        } while (moreChanges);
    } catch (final ConnectTimeoutException e) {
        hasError = true;
        if (DEBUG) {
            Log.e(TAG, "ConnectTimeoutException", e);
        }
    } catch (final IOException e) {
        hasError = true;
        if (DEBUG) {
            Log.e(TAG, Log.getStackTraceString(e));
        }
    } catch (final ParseException e) {
        hasError = true;
        if (DEBUG) {
            Log.e(TAG, "ParseException", e);
        }
    } catch (final Exception e) {
        hasError = true;
        if (DEBUG) {
            Log.e(TAG, "ParseException", e);
        }
    }
    if (hasError) {
        db.endTransaction();
        ContentValues cv = new ContentValues();
        cv.put(BlobsTable.C_NAME, scopeServerBlob);
        cv.put(BlobsTable.C_VALUE, originalBlob);
        cv.put(BlobsTable.C_DATE, Calendar.getInstance().getTimeInMillis());
        cv.put(BlobsTable.C_STATE, -1);
        db.replace(BlobsTable.NAME, null, cv);
    }
    /*-if (!hasError) {
    final ContentValues cv = new ContentValues(2);
     cv.put(BlobsTable.C_NAME, scopeServerBlob);
     cv.put(BlobsTable.C_VALUE, serverBlob);
     db.replace(BlobsTable.NAME, null, cv);
     db.setTransactionSuccessful();
    }
    db.endTransaction();
    if (!hasError) {
     for (String t : notifyTableInfo) {
    getContext().getContentResolver().notifyChange(getDirUri(t),
          null);
     }
    }*/
    if (DEBUG) {
        Helpers.LogInfo(start);
    }
    return !hasError;
}

From source file:com.netflix.hollow.jsonadapter.discover.HollowJsonAdapterSchemaDiscoverer.java

private void discoverSchemaField(JsonParser parser, JsonToken token, String fieldName,
        HollowDiscoveredSchema schema) throws IOException {

    if (token != JsonToken.FIELD_NAME) {
        switch (token) {
        case START_ARRAY:
            String listName = schemaNamer.subCollectionName(schema.schemaName, "ArrayOf", fieldName);
            String elementName = schemaNamer.subObjectName(schema.schemaName, "", fieldName);
            if (isDebug)
                System.out.println(String.format(
                        "\t ARR[START] token=%s schemaName=%s fieldName=%s listName=%s elementName=%s", token,
                        schema.schemaName, fieldName, listName, elementName));

            discoveredSchema(listName, DiscoveredSchemaType.LIST, elementName);
            schema.addField(fieldName, FieldType.REFERENCE, listName);

            HollowDiscoveredSchema elementSchema = discoveredSchema(elementName, DiscoveredSchemaType.OBJECT,
                    null);/*  w  ww  .  ja v a 2s.  co  m*/
            discoverSubArraySchemas(parser, elementSchema);
            if (isDebug)
                System.out.println(String.format(
                        "\t ARR[END] token=%s schemaName=%s fieldName=%s listName=%s elementName=%s elementSchema=%s",
                        token, schema.schemaName, fieldName, listName, elementName, elementSchema));

            break;
        case START_OBJECT:
            String subObjectName = schemaNamer.subObjectName(schema.schemaName, "", fieldName);
            //if (isDebug) System.out.println("\t\t [MAP CHECK] subObjectName=" + subObjectName + "\t" + mapTypes.contains(subObjectName) + "\t" + mapTypes);
            if (mapTypes.contains(subObjectName)) {
                String subMapName = schemaNamer.subCollectionName(schema.schemaName, "MapOf", fieldName);
                if (isDebug)
                    System.out.println(String.format(
                            "\t MAP[START] token=%s schemaName=%s fieldName=%s subMapName=%s subObjectName=%s",
                            token, schema.schemaName, fieldName, subMapName, subObjectName));

                discoveredSchema(subMapName, DiscoveredSchemaType.MAP, subObjectName);
                schema.addField(fieldName, FieldType.REFERENCE, subMapName);

                HollowDiscoveredSchema valueSchema = discoveredSchema(subObjectName,
                        DiscoveredSchemaType.OBJECT, null);
                discoverSubMapSchemas(parser, valueSchema);
                if (isDebug)
                    System.out.println(String.format(
                            "\t MAP[END] token=%s schemaName=%s fieldName=%s subMapName=%s subObjectName=%s valueSchema=%s",
                            token, schema.schemaName, fieldName, subMapName, subObjectName, valueSchema));
            } else {
                if (isDebug)
                    System.out.println(
                            String.format("\t OBJ[START] token=%s schemaName=%s fieldName=%s subObjectName=%s",
                                    token, schema.schemaName, fieldName, subObjectName));
                HollowDiscoveredSchema subObjectSchema = discoveredSchema(subObjectName,
                        DiscoveredSchemaType.OBJECT, null);
                if (fieldName != null)
                    schema.addField(fieldName, FieldType.REFERENCE, subObjectName);

                discoverSchemas(parser, subObjectSchema);
                if (isDebug)
                    System.out.println(String.format(
                            "\t OBJ[END] token=%s schemaName=%s fieldName=%s subObjectName=%s subObjectSchema=%s",
                            token, schema.schemaName, fieldName, subObjectName, subObjectSchema));
            }

            break;
        case VALUE_NUMBER_INT:
            if (isDebug)
                System.out.println(String.format("\t FIELD token=%s schemaName=%s fieldName=%s value=%s", token,
                        schema.schemaName, fieldName, parser.getLongValue()));
            schema.addField(fieldName, FieldType.LONG);
            break;
        case VALUE_NUMBER_FLOAT:
            if (isDebug)
                System.out.println(String.format("\t FIELD token=%s schemaName=%s fieldName=%s value=%s", token,
                        schema.schemaName, fieldName, parser.getDoubleValue()));
            schema.addField(fieldName, FieldType.DOUBLE);
            break;
        case VALUE_NULL:
            if (isDebug)
                System.out.println(String.format("\t FIELD token=%s schemaName=%s fieldName=%s", token,
                        schema.schemaName, fieldName));
            break;
        case VALUE_STRING:
            if (isDebug)
                System.out.println(String.format("\t FIELD token=%s schemaName=%s fieldName=%s value=%s", token,
                        schema.schemaName, fieldName, parser.getValueAsString()));
            schema.addField(fieldName, FieldType.STRING);
            break;
        case VALUE_FALSE:
        case VALUE_TRUE:
            if (isDebug)
                System.out.println(String.format("\t FIELD token=%s schemaName=%s fieldName=%s value=%s", token,
                        schema.schemaName, fieldName, parser.getBooleanValue()));
            schema.addField(fieldName, FieldType.BOOLEAN);
            break;
        default:
        }
    }
}

From source file:com.adobe.communities.ugc.migration.importer.UGCImportHelper.java

protected static void importTranslation(final JsonParser jsonParser, final Resource post) throws IOException {
    JsonToken token = jsonParser.getCurrentToken();
    final Map<String, Object> properties = new HashMap<String, Object>();
    if (token != JsonToken.START_OBJECT) {
        throw new IOException("expected a start object token, got " + token.asString());
    }//from w  w w  .  j av  a 2  s.c o m
    properties.put("jcr:primaryType", "social:asiResource");
    Resource translationFolder = null;
    token = jsonParser.nextToken();
    while (token == JsonToken.FIELD_NAME) {
        token = jsonParser.nextToken(); //advance to the field value
        if (jsonParser.getCurrentName().equals((ContentTypeDefinitions.LABEL_TRANSLATIONS))) {
            if (null == translationFolder) {
                // begin by creating the translation folder resource
                translationFolder = post.getResourceResolver().create(post, "translation", properties);
            }
            //now check to see if any translations exist
            if (token == JsonToken.START_OBJECT) {
                token = jsonParser.nextToken();
                if (token == JsonToken.FIELD_NAME) {
                    while (token == JsonToken.FIELD_NAME) { // each new field represents another translation
                        final Map<String, Object> translationProperties = new HashMap<String, Object>();
                        translationProperties.put("jcr:primaryType", "social:asiResource");
                        String languageLabel = jsonParser.getCurrentName();
                        token = jsonParser.nextToken();
                        if (token != JsonToken.START_OBJECT) {
                            throw new IOException("expected a start object token for translation item, got "
                                    + token.asString());
                        }
                        token = jsonParser.nextToken();
                        while (token != JsonToken.END_OBJECT) {
                            jsonParser.nextToken(); //get next field value
                            if (jsonParser.getCurrentName()
                                    .equals(ContentTypeDefinitions.LABEL_TIMESTAMP_FIELDS)) {
                                jsonParser.nextToken(); // advance to first field name
                                while (!jsonParser.getCurrentToken().equals(JsonToken.END_ARRAY)) {
                                    final String timestampLabel = jsonParser.getValueAsString();
                                    if (translationProperties.containsKey(timestampLabel)) {
                                        final Calendar calendar = new GregorianCalendar();
                                        calendar.setTimeInMillis(Long
                                                .parseLong((String) translationProperties.get(timestampLabel)));
                                        translationProperties.put(timestampLabel, calendar.getTime());
                                    }
                                    jsonParser.nextToken();
                                }
                            } else if (jsonParser.getCurrentName()
                                    .equals(ContentTypeDefinitions.LABEL_SUBNODES)) {
                                jsonParser.skipChildren();
                            } else {
                                translationProperties.put(jsonParser.getCurrentName(),
                                        URLDecoder.decode(jsonParser.getValueAsString(), "UTF-8"));
                            }
                            token = jsonParser.nextToken(); //get next field label
                        }
                        // add the language-specific translation under the translation folder resource
                        Resource translation = post.getResourceResolver().create(post.getChild("translation"),
                                languageLabel, translationProperties);
                        if (null == translation) {
                            throw new IOException("translation not actually imported");
                        }
                    }
                    jsonParser.nextToken(); //skip END_OBJECT token for translation
                } else if (token == JsonToken.END_OBJECT) {
                    // no actual translation to import, so we're done here
                    jsonParser.nextToken();
                }
            } else {
                throw new IOException(
                        "expected translations to be contained in an object, saw instead: " + token.asString());
            }
        } else if (jsonParser.getCurrentName().equals("mtlanguage")
                || jsonParser.getCurrentName().equals("jcr:createdBy")) {
            properties.put(jsonParser.getCurrentName(), jsonParser.getValueAsString());
        } else if (jsonParser.getCurrentName().equals("jcr:created")) {
            final Calendar calendar = new GregorianCalendar();
            calendar.setTimeInMillis(jsonParser.getLongValue());
            properties.put("jcr:created", calendar.getTime());
        }
        token = jsonParser.nextToken();
    }
    if (null == translationFolder && properties.containsKey("mtlanguage")) {
        // it's possible that no translations existed, so we need to make sure the translation resource (which
        // includes the original post's detected language) is created anyway
        post.getResourceResolver().create(post, "translation", properties);
    }
}

From source file:name.gumartinm.weather.information.parser.JPOSCurrentParser.java

private void getCurrentWeatherDataObjects(final Current currentWeatherData, final JsonParser jParser,
        final String fieldname) throws JsonParseException, IOException {
    if ("coord".equals(fieldname)) {
        while (jParser.nextToken() != JsonToken.END_OBJECT) {
            final String namefield = jParser.getCurrentName();
            jParser.nextToken(); // move to value
            if ("lon".equals(namefield)) {
                currentWeatherData.getCoord().setLon(jParser.getDoubleValue());
            }//  w w w  .j  a va2s.  c o m
            if ("lat".equals(namefield)) {
                currentWeatherData.getCoord().setLat(jParser.getDoubleValue());
            }
        }
    }
    if ("sys".equals(fieldname)) {
        while (jParser.nextToken() != JsonToken.END_OBJECT) {
            final String namefield = jParser.getCurrentName();
            jParser.nextToken(); // move to value
            if ("message".equals(namefield)) {
                currentWeatherData.getSys().setMessage(jParser.getDoubleValue());
            }
            if ("country".equals(namefield)) {
                currentWeatherData.getSys().setCountry(jParser.getValueAsString());
            }
            if ("sunrise".equals(namefield)) {
                currentWeatherData.getSys().setSunrise(jParser.getValueAsLong());
            }
            if ("sunset".equals(namefield)) {
                currentWeatherData.getSys().setSunset(jParser.getValueAsLong());
            }
        }
    }
    if ("weather".equals(fieldname)) {
        final Weather weather = new Weather();
        currentWeatherData.getWeather().add(weather);
        while (jParser.nextToken() != JsonToken.END_OBJECT) {
            final String namefield = jParser.getCurrentName();
            jParser.nextToken(); // move to value
            if ("id".equals(namefield)) {
                weather.setId(jParser.getIntValue());
            }
            if ("main".equals(namefield)) {
                weather.setMain(jParser.getText());
            }
            if ("description".equals(namefield)) {
                weather.setDescription(jParser.getText());
            }
            if ("icon".equals(namefield)) {
                weather.setIcon(jParser.getText());
            }

        }
    }
    if ("base".equals(fieldname)) {
        currentWeatherData.setBase(jParser.getText());
    }
    if ("main".equals(fieldname)) {
        while (jParser.nextToken() != JsonToken.END_OBJECT) {
            final String namefield = jParser.getCurrentName();
            jParser.nextToken(); // move to value
            if ("temp".equals(namefield)) {
                currentWeatherData.getMain().setTemp(jParser.getDoubleValue());
            }
            if ("temp_min".equals(namefield)) {
                currentWeatherData.getMain().setTemp_min(jParser.getDoubleValue());
            }
            if ("temp_max".equals(namefield)) {
                currentWeatherData.getMain().setTemp_max(jParser.getDoubleValue());
            }
            if ("pressure".equals(namefield)) {
                currentWeatherData.getMain().setPressure(jParser.getDoubleValue());
            }
            if ("sea_level".equals(namefield)) {
                currentWeatherData.getMain().setSea_level(jParser.getDoubleValue());
            }
            if ("grnd_level".equals(namefield)) {
                currentWeatherData.getMain().setGrnd_level(jParser.getDoubleValue());
            }
            if ("humidity".equals(namefield)) {
                currentWeatherData.getMain().setHumidity(jParser.getDoubleValue());
            }
        }
    }
    if ("wind".equals(fieldname)) {
        while (jParser.nextToken() != JsonToken.END_OBJECT) {
            final String namefield = jParser.getCurrentName();
            jParser.nextToken(); // move to value
            if ("speed".equals(namefield)) {
                currentWeatherData.getWind().setSpeed(jParser.getDoubleValue());
            }
            if ("deg".equals(namefield)) {
                currentWeatherData.getWind().setDeg(jParser.getDoubleValue());
            }
        }
    }
    if ("clouds".equals(fieldname)) {
        while (jParser.nextToken() != JsonToken.END_OBJECT) {
            final String namefield = jParser.getCurrentName();
            jParser.nextToken(); // move to value
            if ("all".equals(namefield)) {
                currentWeatherData.getClouds().setAll(jParser.getDoubleValue());
            }
        }
    }
    if ("dt".equals(fieldname)) {
        currentWeatherData.setDt(jParser.getLongValue());
    }
    if ("rain".equals(fieldname)) {
        while (jParser.nextToken() != JsonToken.END_OBJECT) {
            final String namefield = jParser.getCurrentName();
            jParser.nextToken(); // move to value
            if ("3h".equals(namefield)) {
                currentWeatherData.getRain().set3h(jParser.getDoubleValue());
            }
        }
    }
    if ("snow".equals(fieldname)) {
        while (jParser.nextToken() != JsonToken.END_OBJECT) {
            final String namefield = jParser.getCurrentName();
            jParser.nextToken(); // move to value
            if ("3h".equals(namefield)) {
                currentWeatherData.getSnow().set3h(jParser.getDoubleValue());
            }
        }
    }
    if ("id".equals(fieldname)) {
        currentWeatherData.setId(jParser.getLongValue());
    }
    if ("name".equals(fieldname)) {
        currentWeatherData.setName(jParser.getText());
    }
    if ("cod".equals(fieldname)) {
        currentWeatherData.setCod(jParser.getIntValue());
    }
}

From source file:org.hippoecm.frontend.service.restproxy.custom.json.deserializers.AnnotationJsonDeserializer.java

protected Long[] deserializeLongArrayAnnotationAttribute(JsonParser jsonParser)
        throws JsonParseException, IOException {
    List<Long> longArray = new ArrayList<Long>();

    while (jsonParser.nextToken() != JsonToken.END_ARRAY) {
        longArray.add(jsonParser.getLongValue());
    }/*from w  ww .  j  av a  2s  .  com*/

    return longArray.toArray(new Long[longArray.size()]);
}

From source file:org.sead.repositories.reference.RefRepository.java

private JsonNode getAggregation(String id, File indexFile, CountingInputStream cis, boolean withChildren,
        Long oreFileSize) throws JsonParseException, JsonMappingException, IOException {
    log.debug("Getting Aggregation");

    long curPos = 0;

    // Always need to generate these
    ArrayList<String> entries = new ArrayList<String>();
    ArrayList<Long> offsets = new ArrayList<Long>();

    FileInputStream fis = new FileInputStream(indexFile);
    JsonFactory f = new MappingJsonFactory();
    JsonParser jp = f.createParser(fis);

    JsonToken current;//from w  w  w  .  ja v a2s  . c o m
    log.debug("Reading Index file");
    current = jp.nextToken(); // Start object

    while ((current = jp.nextToken()) != null) {
        if (current.equals(JsonToken.FIELD_NAME)) {
            String fName = jp.getText();
            current = jp.nextToken(); // Get to start of
            // value
            long offset = jp.getLongValue();
            log.trace("Adding: " + fName + " : " + offset);
            entries.add(fName);
            offsets.add(offset);
        }
    }
    IOUtils.closeQuietly(fis);

    File descFile = getDescFile(id);
    InputStream is = new FileInputStream(descFile);
    ObjectNode resultNode = (ObjectNode) mapper.readTree(is);
    IOUtils.closeQuietly(is);

    log.trace(resultNode.toString());
    if ((resultNode.has("Has Part")) && withChildren) {

        resultNode = getChildren(resultNode, indexFile, cis, oreFileSize, curPos, entries, offsets);
    } else {
        resultNode.remove("aggregates");
    }
    log.debug("Aggregation retrieved");
    return resultNode;
}

From source file:org.sead.repositories.reference.RefRepository.java

private JsonNode getItem(String item, File indexFile, CountingInputStream cis, boolean withChildren,
        Long oreFileSize, long curOffset, ArrayList<String> entries, ArrayList<Long> offsets)
        throws JsonParseException, JsonMappingException, IOException {
    log.trace("Getting: " + item + " with starting offset: " + curOffset);

    long curPos = curOffset;

    if ((entries == null) || (offsets == null)) {
        entries = new ArrayList<String>();
        offsets = new ArrayList<Long>();

        FileInputStream fis = new FileInputStream(indexFile);
        JsonFactory f = new MappingJsonFactory();
        JsonParser jp = f.createParser(fis);

        JsonToken current;/*  w w w .j  av  a  2  s.  c o  m*/
        log.trace("Reading Index file");
        current = jp.nextToken(); // Start object

        while ((current = jp.nextToken()) != null) {
            if (current.equals(JsonToken.FIELD_NAME)) {
                String fName = jp.getText();
                current = jp.nextToken(); // Get to start of
                // value
                long offset = jp.getLongValue();
                log.trace("Adding: " + fName + " : " + offset);
                entries.add(fName);
                offsets.add(offset);
            }
        }
        try {
            fis.close();
        } catch (Exception e) {
            log.debug(e.getMessage());
        }

    }

    byte[] b = null;
    int bytesRead = 0;

    int index = entries.indexOf(item);
    if (index == -1) {
        log.warn(item + " not in index");
    }
    // getSizeEstimateFor(index)
    int estSize;
    if (index < offsets.size() - 1) {
        estSize = (int) (offsets.get(index + 1) - offsets.get(index));
    } else {
        estSize = (int) (oreFileSize - offsets.get(index));
    }
    curPos += skipTo(cis, curPos, offsets.get(index));
    log.trace("Current Pos updated to : " + curPos);
    b = new byte[estSize];
    bytesRead = cis.read(b);
    log.trace("Read " + bytesRead + " bytes");
    if (bytesRead == estSize) {
        log.trace("Read: " + new String(b));
        InputStream is = new ByteArrayInputStream(b);
        // mapper seems to be OK ignoring a last char such as a comma after
        // the object/tree
        ObjectNode resultNode = (ObjectNode) mapper.readTree(is);
        try {
            is.close();
        } catch (Exception e) {
            log.debug(e.getMessage());
        }

        curPos += bytesRead;
        log.trace("curPos: " + curPos + " : count: " + cis.getByteCount());

        log.trace(resultNode.toString());
        if ((resultNode.has("Has Part")) && withChildren) {
            resultNode = getChildren(resultNode, indexFile, cis, oreFileSize, curPos, entries, offsets);
        } else {
            resultNode.remove("aggregates");
        }
        /*
         * if (args[2] != null) { long offset2 = Long.parseLong(args[2]);
         * sbc.position(offset2); b.clear(); sbc.read(b);
         * 
         * InputStream is2 = new ByteArrayInputStream(b.array());
         * 
         * JsonNode node2 = mapper.readTree(is2);
         * System.out.println(node2.toString()); is2.close(); }
         */
        return resultNode;
    } else {
        return null;
    }

}