List of usage examples for com.fasterxml.jackson.core JsonToken equals
public boolean equals(Object obj)
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; }