Example usage for com.fasterxml.jackson.core JsonToken equals

List of usage examples for com.fasterxml.jackson.core JsonToken equals

Introduction

In this page you can find the example usage for com.fasterxml.jackson.core JsonToken equals.

Prototype

public boolean equals(Object obj) 

Source Link

Document

Indicates whether some other object is "equal to" this one.

Usage

From source file:org.datagator.api.client.MatrixDeserializer.java

@Override
public SimpleMatrix deserialize(JsonParser jp, DeserializationContext cntx)
        throws IOException, JsonProcessingException {
    int rowsCount = -1;
    int columnsCount = -1;
    int bodyRow = -1;
    int bodyColumn = -1;

    ArrayList<ArrayList<Object>> columnHeaders = null;

    JsonToken token = jp.getCurrentToken(); // FIELD_NAME
    if (!token.equals(JsonToken.FIELD_NAME)) {
        throw new RuntimeException(String.format("Unexpected token %s", token));
    }//ww  w .j a  v a  2s  . c  o m
    while (token.equals(JsonToken.FIELD_NAME)) {
        String name = jp.getText();
        token = jp.nextToken();
        if (name.equals("columnHeaders")) {
            if (!token.equals(JsonToken.VALUE_NUMBER_INT)) {
                throw new RuntimeException(String.format("Unexpected token %s", token));
            }
            bodyRow = jp.getIntValue();
        } else if (name.equals("rowHeaders")) {
            if (!token.equals(JsonToken.VALUE_NUMBER_INT)) {
                throw new RuntimeException(String.format("Unexpected token %s", token));
            }
            bodyColumn = jp.getIntValue();
        } else if (name.equals("rows")) {
            if (bodyRow < 0 || bodyColumn < 0) {
                throw new RuntimeException(
                        "Unexpected property order 'columnHeaders' and 'rowHeaders' should precede 'rows'.");
            }
            columnHeaders = parseRows(jp, bodyRow, bodyColumn);
        } else if (name.equals("rowsCount")) {
            if (!token.equals(JsonToken.VALUE_NUMBER_INT)) {
                throw new RuntimeException(String.format("Unexpected token %s", token));
            }
            rowsCount = jp.getIntValue();
        } else if (name.equals("columnsCount")) {
            if (!token.equals(JsonToken.VALUE_NUMBER_INT)) {
                throw new RuntimeException(String.format("Unexpected token %s", token));
            }
            columnsCount = jp.getIntValue();
        } else {
            throw new RuntimeException(String.format("Unexpected property '%s'", name));
        }
        token = jp.nextToken(); // FIELD_NAME
    }

    if (!(0 <= bodyRow && bodyRow <= rowsCount)) {
        throw new RuntimeException("Invalid Matrix shape");
    }

    if (!(0 <= bodyColumn && bodyColumn <= columnsCount)) {
        throw new RuntimeException("Invalid Matrix shape");
    }

    // special case: size of empty matrix is 1 x 0
    if ((columnsCount == 0) && (rowsCount != 1)) {
        throw new RuntimeException("Invalid Matrix shape");
    }

    Object[][] rows = new Object[bodyRow][];
    for (int r = 0; r < bodyRow; r++) {
        rows[r] = columnHeaders.get(r).toArray();
    }

    return new SimpleMatrix(bodyRow, bodyColumn, rows, rowsCount, columnsCount);
}

From source file:com.sdl.odata.unmarshaller.json.JsonLinkUnmarshaller.java

@Override
protected String getToEntityId(ODataRequestContext requestContext) throws ODataUnmarshallingException {
    // The body is expected to contain a single entity reference
    // See OData JSON specification chapter 13

    String bodyText;/*ww w . j  a va2s.  c o m*/
    try {
        bodyText = requestContext.getRequest().getBodyText(StandardCharsets.UTF_8.name());
    } catch (UnsupportedEncodingException e) {
        throw new ODataSystemException("UTF-8 is not supported", e);
    }

    String idValue = null;
    try {
        JsonParser parser = new JsonFactory().createParser(bodyText);
        while (idValue == null && !parser.isClosed()) {
            JsonToken token = parser.nextToken();
            if (token == null) {
                break;
            }

            if (token.equals(JsonToken.FIELD_NAME) && parser.getCurrentName().equals(JsonConstants.ID)) {
                token = parser.nextToken();
                if (token.equals(JsonToken.VALUE_STRING)) {
                    idValue = parser.getText();
                }
            }
        }
    } catch (IOException e) {
        throw new ODataUnmarshallingException("Error while parsing JSON data", e);
    }

    if (isNullOrEmpty(idValue)) {
        throw new ODataUnmarshallingException("The JSON object in the body has no '@odata.id' value,"
                + " or the value is empty. The JSON object in the body must have an '@odata.id' value"
                + " that refers to the entity to link to.");
    }

    return idValue;
}

From source file:org.datagator.api.client.SpooledRowBuffer.java

@Override
public Iterator<Object[]> iterator() {
    if (rowsCount <= cacheLimit) {
        return this.cache.iterator();
    } else {/*from w  w w .  java 2  s .  c  o  m*/
        try {
            flush();
        } catch (IOException ex) {
            throw new RuntimeException(ex);
        }
        return new Iterator<Object[]>() {

            private final JsonParser jp;
            private int rowIndex = 0;
            private final TypeReference<ArrayList<Object>> tr = new TypeReference<ArrayList<Object>>() {
            };

            {
                try {
                    // TODO lock cache file
                    cacheFile.seek(0);
                    FileReader reader = new FileReader(cacheFile.getFD());
                    jp = Entity.json.createParser(reader);
                    JsonToken token = jp.nextToken(); // START_ARRAY
                    if (!token.equals(JsonToken.START_ARRAY)) {
                        throw new RuntimeException("Corrupted cache file");
                    }
                } catch (IOException ex) {
                    throw new RuntimeException(ex);
                }
            }

            @Override
            public boolean hasNext() {
                return rowIndex < rowsCount;
            }

            @Override
            public Object[] next() {
                if (!hasNext()) {
                    throw new NoSuchElementException("No such elememnt.");
                }
                try {
                    rowIndex += 1;
                    ArrayList<Object> buffer = jp.readValueAs(tr);
                    return buffer.toArray();
                } catch (IOException ex) {
                    throw new RuntimeException(ex);
                }
            }

            @Override
            public void remove() {
                throw new UnsupportedOperationException("Not supported yet.");
            }

        };
    }
}

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

protected void doPost(final SlingHttpServletRequest request, final SlingHttpServletResponse response)
        throws ServletException, IOException {

    final ResourceResolver resolver = request.getResourceResolver();

    UGCImportHelper.checkUserPrivileges(resolver, rrf);

    final UGCImportHelper importHelper = new UGCImportHelper();
    importHelper.setForumOperations(forumOperations);
    importHelper.setTallyService(tallyOperationsService);
    // get the forum we'll be adding new topics to
    final String path = request.getRequestParameter("path").getString();
    final Resource resource = request.getResourceResolver().getResource(path);
    if (resource == null) {
        throw new ServletException("Could not find a valid resource for import");
    }//from   w w w  .  ja  v a  2s.c o m

    // finally get the uploaded file
    final RequestParameter[] fileRequestParameters = request.getRequestParameters("file");
    if (fileRequestParameters != null && fileRequestParameters.length > 0
            && !fileRequestParameters[0].isFormField()) {

        InputStream inputStream = fileRequestParameters[0].getInputStream();
        JsonParser jsonParser = new JsonFactory().createParser(inputStream);
        jsonParser.nextToken(); // get the first token

        if (jsonParser.getCurrentToken().equals(JsonToken.START_OBJECT)) {
            jsonParser.nextToken();
            if (jsonParser.getCurrentName().equals(ContentTypeDefinitions.LABEL_CONTENT_TYPE)) {
                jsonParser.nextToken();
                final String contentType = jsonParser.getValueAsString();
                if (contentType.equals(getContentType())) {
                    jsonParser.nextToken(); // content
                    if (jsonParser.getCurrentName().equals(ContentTypeDefinitions.LABEL_CONTENT)) {
                        jsonParser.nextToken(); // startObject
                        if (jsonParser.getCurrentToken().equals(JsonToken.START_OBJECT)) {
                            JsonToken token = jsonParser.nextToken(); // social:key
                            try {
                                while (!token.equals(JsonToken.END_OBJECT)) {
                                    importHelper.extractTopic(jsonParser, resource,
                                            resource.getResourceResolver(), getOperationsService());
                                    token = jsonParser.nextToken();
                                }
                            } catch (final IOException e) {
                                throw new ServletException("Encountered an IOException", e);
                            }
                        } else {
                            throw new ServletException("Start object token not found for content");
                        }
                    } else {
                        throw new ServletException("Content not found");
                    }
                } else {
                    throw new ServletException("Expected forum data");
                }
            } else {
                throw new ServletException("Content Type not specified");
            }
        } else {
            throw new ServletException("Invalid Json format");
        }
    }
}

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

private void importFile(final JsonParser jsonParser, final UserPropertiesManager userManager,
        final ResourceResolver resolver) throws ServletException, IOException, RepositoryException {
    Map<String, Boolean> scoreTypes = getScoreTypes(resolver);
    JsonToken token = jsonParser.nextToken();

    while (!token.equals(JsonToken.END_OBJECT)) {
        final String authId = jsonParser.getCurrentName();
        token = jsonParser.nextToken();//from w  w w  .j  av  a 2s  .co m
        if (!token.equals(JsonToken.START_OBJECT)) {
            throw new ServletException("Expected to see start object, got " + token);
        }
        final Map<String, Long> scores = new HashMap<String, Long>();
        token = jsonParser.nextToken();
        while (!token.equals(JsonToken.END_OBJECT)) {
            final String scoreName = jsonParser.getCurrentName();
            jsonParser.nextToken();
            final Long scoreValue = jsonParser.getLongValue();
            scores.put(scoreName, scoreValue);
            if (!scoreTypes.containsKey(scoreName)) {
                LOG.warn(
                        "A score of type [{}] was imported for [{}], but that score type hasn't been configured "
                                + "on this server",
                        scoreName, authId);
            }
            token = jsonParser.nextToken();
        }
        updateProfileScore(authId, scores, userManager, resolver);
        token = jsonParser.nextToken();
    }
}

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

/**
 * The post operation accepts a json file, parses it and applies the profile scores to local profiles
 * @param request - the request//from  ww  w.  j  a v  a2 s.  c  om
 * @param response - the response
 * @throws javax.servlet.ServletException
 * @throws java.io.IOException
 */
protected void doPost(final SlingHttpServletRequest request, final SlingHttpServletResponse response)
        throws ServletException, IOException {

    final ResourceResolver resolver = request.getResourceResolver();

    UGCImportHelper.checkUserPrivileges(resolver, rrf);

    final RequestParameter[] fileRequestParameters = request.getRequestParameters("file");
    if (fileRequestParameters != null && fileRequestParameters.length > 0
            && !fileRequestParameters[0].isFormField()
            && fileRequestParameters[0].getFileName().endsWith(".json")) {
        final InputStream inputStream = fileRequestParameters[0].getInputStream();
        final JsonParser jsonParser = new JsonFactory().createParser(inputStream);
        JsonToken token = jsonParser.nextToken(); // get the first token
        if (token.equals(JsonToken.START_OBJECT)) {
            try {
                final UserPropertiesManager userManager = userPropertiesService
                        .createUserPropertiesManager(resolver);
                importFile(jsonParser, userManager, resolver);
            } catch (RepositoryException e) {
                throw new ServletException("Unable to communicate with Jcr repository", e);
            } catch (final Exception e) {
                throw new ServletException("Problem!", e);
            }
        } else {
            throw new ServletException("Expected a start object token, got " + token);
        }
    } else {
        throw new ServletException("Expected to get a json file in post request");
    }
}

From source file:com.floragunn.searchguard.dlic.rest.validation.AbstractConfigurationValidator.java

private boolean checkDatatypes() throws Exception {
    String contentAsJson = XContentHelper.convertToJson(content, false);
    JsonParser parser = factory.createParser(contentAsJson);
    JsonToken token = null;
    while ((token = parser.nextToken()) != null) {
        if (token.equals(JsonToken.FIELD_NAME)) {
            String currentName = parser.getCurrentName();
            DataType dataType = allowedKeys.get(currentName);
            if (dataType != null) {
                JsonToken valueToken = parser.nextToken();
                switch (dataType) {
                case STRING:
                    if (!valueToken.equals(JsonToken.VALUE_STRING)) {
                        wrongDatatypes.put(currentName, "String expected");
                    }//from ww  w  . j  ava  2  s  .  co m
                    break;
                case ARRAY:
                    if (!valueToken.equals(JsonToken.START_ARRAY) && !valueToken.equals(JsonToken.END_ARRAY)) {
                        wrongDatatypes.put(currentName, "Array expected");
                    }
                    break;
                case OBJECT:
                    if (!valueToken.equals(JsonToken.START_OBJECT)
                            && !valueToken.equals(JsonToken.END_OBJECT)) {
                        wrongDatatypes.put(currentName, "Object expected");
                    }
                    break;
                }
            }
        }
    }
    return wrongDatatypes.isEmpty();
}

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

/**
 * Handle each of the importable types of ugc content
 * @param jsonParser - the parsing stream
 * @param resource - the parent resource of whatever it is we're importing (must already exist)
 * @throws ServletException//from  w  w w . ja v a  2s . c om
 * @throws IOException
 */
protected void importFile(final JsonParser jsonParser, final Resource resource, final ResourceResolver resolver)
        throws ServletException, IOException {
    final UGCImportHelper importHelper = new UGCImportHelper();
    JsonToken token1 = jsonParser.getCurrentToken();
    importHelper.setSocialUtils(socialUtils);
    if (token1.equals(JsonToken.START_OBJECT)) {
        jsonParser.nextToken();
        if (jsonParser.getCurrentName().equals(ContentTypeDefinitions.LABEL_CONTENT_TYPE)) {
            jsonParser.nextToken();
            final String contentType = jsonParser.getValueAsString();
            if (contentType.equals(ContentTypeDefinitions.LABEL_QNA_FORUM)) {
                importHelper.setQnaForumOperations(qnaForumOperations);
            } else if (contentType.equals(ContentTypeDefinitions.LABEL_FORUM)) {
                importHelper.setForumOperations(forumOperations);
            } else if (contentType.equals(ContentTypeDefinitions.LABEL_CALENDAR)) {
                importHelper.setCalendarOperations(calendarOperations);
            } else if (contentType.equals(ContentTypeDefinitions.LABEL_JOURNAL)) {
                importHelper.setJournalOperations(journalOperations);
            } else if (contentType.equals(ContentTypeDefinitions.LABEL_FILELIBRARY)) {
                importHelper.setFileLibraryOperations(fileLibraryOperations);
            }
            importHelper.setTallyService(tallyOperationsService); // (everything potentially needs tally)
            importHelper.setCommentOperations(commentOperations); // nearly anything can have comments on it
            jsonParser.nextToken(); // content
            if (jsonParser.getCurrentName().equals(ContentTypeDefinitions.LABEL_CONTENT)) {
                jsonParser.nextToken();
                token1 = jsonParser.getCurrentToken();
                if (token1.equals(JsonToken.START_OBJECT) || token1.equals(JsonToken.START_ARRAY)) {
                    if (!resolver.isLive()) {
                        throw new ServletException("Resolver is already closed");
                    }
                } else {
                    throw new ServletException("Start object token not found for content");
                }
                if (token1.equals(JsonToken.START_OBJECT)) {
                    try {
                        if (contentType.equals(ContentTypeDefinitions.LABEL_QNA_FORUM)) {
                            importHelper.importQnaContent(jsonParser, resource, resolver);
                        } else if (contentType.equals(ContentTypeDefinitions.LABEL_FORUM)) {
                            importHelper.importForumContent(jsonParser, resource, resolver);
                        } else if (contentType.equals(ContentTypeDefinitions.LABEL_COMMENTS)) {
                            importHelper.importCommentsContent(jsonParser, resource, resolver);
                        } else if (contentType.equals(ContentTypeDefinitions.LABEL_JOURNAL)) {
                            importHelper.importJournalContent(jsonParser, resource, resolver);
                        } else if (contentType.equals(ContentTypeDefinitions.LABEL_FILELIBRARY)) {
                            importHelper.importFileLibrary(jsonParser, resource, resolver);
                        } else {
                            LOG.info("Unsupported content type: {}", contentType);
                            jsonParser.skipChildren();
                        }
                        jsonParser.nextToken();
                    } catch (final IOException e) {
                        throw new ServletException(e);
                    }
                    jsonParser.nextToken(); // skip over END_OBJECT
                } else {
                    try {
                        if (contentType.equals(ContentTypeDefinitions.LABEL_CALENDAR)) {
                            importHelper.importCalendarContent(jsonParser, resource, resolver);
                        } else if (contentType.equals(ContentTypeDefinitions.LABEL_TALLY)) {
                            importHelper.importTallyContent(jsonParser, resource, resolver);
                        } else {
                            LOG.info("Unsupported content type: {}", contentType);
                            jsonParser.skipChildren();
                        }
                        jsonParser.nextToken();
                    } catch (final IOException e) {
                        throw new ServletException(e);
                    }
                    jsonParser.nextToken(); // skip over END_ARRAY
                }
            } else {
                throw new ServletException("Content not found");
            }
        } else {
            throw new ServletException("No content type specified");
        }
    } else {
        throw new ServletException("Invalid Json format");
    }
}

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

/**
 * Handle each of the importable types of ugc content
 * @param jsonParser - the parsing stream
 * @param resource - the parent resource of whatever it is we're importing (must already exist)
 * @throws ServletException/*w  w  w  . java  2  s.c  om*/
 * @throws IOException
 */
private void importFile(final JsonParser jsonParser, final Resource resource, final ResourceResolver resolver)
        throws ServletException, IOException {
    final UGCImportHelper importHelper = new UGCImportHelper();
    JsonToken token1 = jsonParser.getCurrentToken();
    if (token1.equals(JsonToken.START_OBJECT)) {
        jsonParser.nextToken();
        if (jsonParser.getCurrentName().equals(ContentTypeDefinitions.LABEL_CONTENT_TYPE)) {
            jsonParser.nextToken();
            final String contentType = jsonParser.getValueAsString();
            if (contentType.equals(ContentTypeDefinitions.LABEL_QNA_FORUM)) {
                importHelper.setQnaForumOperations(qnaForumOperations);
            } else if (contentType.equals(ContentTypeDefinitions.LABEL_FORUM)) {
                importHelper.setForumOperations(forumOperations);
            } else if (contentType.equals(ContentTypeDefinitions.LABEL_COMMENTS)) {
                importHelper.setCommentOperations(commentOperations);
            } else if (contentType.equals(ContentTypeDefinitions.LABEL_CALENDAR)) {
                importHelper.setCalendarOperations(calendarOperations);
            } else if (contentType.equals(ContentTypeDefinitions.LABEL_JOURNAL)) {
                importHelper.setJournalOperations(journalOperations);
            } else if (contentType.equals(ContentTypeDefinitions.LABEL_TALLY)) {
                importHelper.setSocialUtils(socialUtils);
            }
            importHelper.setTallyService(tallyOperationsService); // (everything potentially needs tally)
            jsonParser.nextToken(); // content
            if (jsonParser.getCurrentName().equals(ContentTypeDefinitions.LABEL_CONTENT)) {
                jsonParser.nextToken();
                token1 = jsonParser.getCurrentToken();
                if (token1.equals(JsonToken.START_OBJECT) || token1.equals(JsonToken.START_ARRAY)) {
                    if (!resolver.isLive()) {
                        throw new ServletException("Resolver is already closed");
                    }
                } else {
                    throw new ServletException("Start object token not found for content");
                }
                if (token1.equals(JsonToken.START_OBJECT)) {
                    try {
                        if (contentType.equals(ContentTypeDefinitions.LABEL_QNA_FORUM)) {
                            importHelper.importQnaContent(jsonParser, resource, resolver);
                        } else if (contentType.equals(ContentTypeDefinitions.LABEL_FORUM)) {
                            importHelper.importForumContent(jsonParser, resource, resolver);
                        } else if (contentType.equals(ContentTypeDefinitions.LABEL_COMMENTS)) {
                            importHelper.importCommentsContent(jsonParser, resource, resolver);
                        } else if (contentType.equals(ContentTypeDefinitions.LABEL_JOURNAL)) {
                            importHelper.importJournalContent(jsonParser, resource, resolver);
                        } else {
                            LOG.info("Unsupported content type: {}", contentType);
                            jsonParser.skipChildren();
                        }
                        jsonParser.nextToken();
                    } catch (final IOException e) {
                        throw new ServletException(e);
                    }
                    jsonParser.nextToken(); // skip over END_OBJECT
                } else {
                    try {
                        if (contentType.equals(ContentTypeDefinitions.LABEL_CALENDAR)) {
                            importHelper.importCalendarContent(jsonParser, resource);
                        } else if (contentType.equals(ContentTypeDefinitions.LABEL_TALLY)) {
                            importHelper.importTallyContent(jsonParser, resource);
                        } else {
                            LOG.info("Unsupported content type: {}", contentType);
                            jsonParser.skipChildren();
                        }
                        jsonParser.nextToken();
                    } catch (final IOException e) {
                        throw new ServletException(e);
                    }
                    jsonParser.nextToken(); // skip over END_ARRAY
                }
            } else {
                throw new ServletException("Content not found");
            }
        } else {
            throw new ServletException("No content type specified");
        }
    } else {
        throw new ServletException("Invalid Json format");
    }
}

From source file:com.sdl.odata.unmarshaller.json.core.JsonProcessor.java

/**
 * Process an embedded object.//  w  ww  .  ja va  2s.c o  m
 *
 * @param jsonParser the parser
 * @return map with embedded object key:values
 * @throws IOException If unable to read input parser
 */
private Object getEmbeddedObject(JsonParser jsonParser) throws IOException {
    LOG.info("Start parsing an embedded object.");
    Map<String, Object> embeddedMap = new HashMap<>();
    while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
        String key = jsonParser.getText();
        jsonParser.nextToken();
        JsonToken token = jsonParser.getCurrentToken();
        if (token == JsonToken.START_ARRAY) {
            Object embeddedArray = getCollectionValue(jsonParser);
            embeddedMap.put(key, embeddedArray);
        } else if (token == JsonToken.START_OBJECT) {
            Object embeddedObject = getEmbeddedObject(jsonParser);
            embeddedMap.put(key, embeddedObject);
        } else {
            if (token.equals(JsonToken.VALUE_NULL)) {
                embeddedMap.put(key, null);
            } else {
                embeddedMap.put(key, jsonParser.getText());
            }
        }
    }
    return embeddedMap;
}