Example usage for io.vertx.core.json JsonArray JsonArray

List of usage examples for io.vertx.core.json JsonArray JsonArray

Introduction

In this page you can find the example usage for io.vertx.core.json JsonArray JsonArray.

Prototype

public JsonArray() 

Source Link

Document

Create an empty instance

Usage

From source file:org.entcore.feeder.timetable.edt.EDTImporter.java

License:Open Source License

private void matchAndCreatePersEducNat(final Handler<AsyncResult<Void>> handler) {
    txXDT.commit(new Handler<Message<JsonObject>>() {
        @Override/*from  www.j  a  va 2  s  .co m*/
        public void handle(Message<JsonObject> event) {
            JsonArray res = event.body().getJsonArray("results");
            if ("ok".equals(event.body().getString("status")) && res != null) {
                for (Object o : res) {
                    setUsersId(o);
                }
                if (!notFoundPersEducNat.isEmpty()) {
                    try {
                        TransactionHelper tx = TransactionManager.getTransaction();
                        persEducNat.setTransactionHelper(tx);
                        for (JsonObject p : notFoundPersEducNat.values()) {
                            p.put("structures", new JsonArray().add(structureExternalId));
                            if ("Teacher".equals(p.getJsonArray("profiles").getString(0))) {
                                persEducNat.createOrUpdatePersonnel(p, TEACHER_PROFILE_EXTERNAL_ID, structure,
                                        null, null, true, true);
                            } else {
                                persEducNat.createOrUpdatePersonnel(p, PERSONNEL_PROFILE_EXTERNAL_ID, structure,
                                        null, null, true, true);
                            }
                        }
                        tx.commit(new Handler<Message<JsonObject>>() {
                            @Override
                            public void handle(Message<JsonObject> event) {
                                JsonArray res = event.body().getJsonArray("results");
                                if ("ok".equals(event.body().getString("status")) && res != null) {
                                    for (Object o : res) {
                                        setUsersId(o);
                                    }
                                    if (notFoundPersEducNat.isEmpty()) {
                                        handler.handle(new DefaultAsyncResult<>((Void) null));
                                    } else {
                                        for (Map.Entry<String, JsonObject> e : notFoundPersEducNat.entrySet()) {
                                            log.info(e.getKey() + " : " + e.getValue().encode());
                                        }
                                        handler.handle(new DefaultAsyncResult<Void>(
                                                new ValidationException("not.found.users.not.empty")));
                                    }
                                } else {
                                    handler.handle(new DefaultAsyncResult<Void>(
                                            new TransactionException(event.body().getString("message"))));
                                }
                            }
                        });
                    } catch (TransactionException e) {
                        handler.handle(new DefaultAsyncResult<Void>(e));
                    }
                } else {
                    handler.handle(new DefaultAsyncResult<>((Void) null));
                }
            } else {
                handler.handle(new DefaultAsyncResult<Void>(
                        new TransactionException(event.body().getString("message"))));
            }
        }

        private void setUsersId(Object o) {
            if ((o instanceof JsonArray) && ((JsonArray) o).size() > 0) {
                JsonObject j = ((JsonArray) o).getJsonObject(0);
                String idPronote = j.getString(IDPN);
                String id = j.getString("id");
                String profile = j.getString("profile");
                if (isNotEmpty(id) && isNotEmpty(idPronote) && isNotEmpty(profile)) {
                    notFoundPersEducNat.remove(idPronote);
                    if ("Teacher".equals(profile)) {
                        teachersMapping.put(idPronote, new String[] { id, getSource() });
                    } else {
                        String[] ident = idPronote.split("\\$");
                        if (ident.length == 2) {
                            personnels.put(ident[1], id);
                        }
                    }
                }
            }
        }
    });

}

From source file:org.entcore.feeder.timetable.udt.UDTImporter.java

License:Open Source License

void addProfesseur(JsonObject currentEntity) {
    try {//w  w  w.  j  ava2  s .c om
        if (isEmpty(currentEntity.getString("code_matppl"))) {
            // Ignore prof without subject.
            // Often this case corresponds to personnel.
            return;
        }
        final String id = currentEntity.getString(CODE);
        String externalId = currentEntity.getString("epj");
        final String firstName = currentEntity.getString("prenom");
        final String lastName = currentEntity.getString("nom");
        JsonObject p = persEducNat.applyMapping(currentEntity);
        p.put("profiles", new fr.wseduc.webutils.collections.JsonArray().add("Teacher"));
        if (isEmpty(externalId)) {
            externalId = JsonUtil.checksum(p, JsonUtil.HashAlgorithm.MD5);
        }
        p.put("externalId", externalId);
        userImportedExternalId.add(externalId);
        String[] teacherId = teachersMapping.get(externalId);
        if (teacherId == null) {
            teacherId = teachersCleanNameMapping.get(Validator.sanitize(firstName + lastName));
        }
        if (teacherId != null && isNotEmpty(teacherId[0])) {
            teachers.put(id, teacherId[0]);
            if (getSource().equals(teacherId[1]) && authorizeUserCreation) {
                updateUser(p);
            }
        } else {
            final String userId = UUID.randomUUID().toString();
            p.put("id", userId);
            p.put("structures", new JsonArray().add(structureExternalId));
            if (authorizeUserCreation) {
                persEducNat.createOrUpdatePersonnel(p, TEACHER_PROFILE_EXTERNAL_ID, structure, null, null, true,
                        true);
            }
            teachers.put(id, userId);
        }
    } catch (Exception e) {
        report.addError(e.getMessage());
    }
}

From source file:org.entcore.feeder.utils.AAFUtil.java

License:Open Source License

private static Object functionalGroupConverter(Object value) {
    final JsonArray res = new JsonArray();
    if (value instanceof JsonArray) {
        for (Object o : ((JsonArray) value)) {
            if (o instanceof JsonObject) {
                final JsonObject j = (JsonObject) o;
                final String structureExternalId = j.getString("structureExternalId");
                if (isNotEmpty(structureExternalId)) {
                    final String idrgpmt = j.getString("idrgpmt");
                    final String name = j.getString("name");
                    if (isNotEmpty(idrgpmt)) {
                        res.add(structureExternalId + "$" + name + "$" + idrgpmt);
                    } else if (isNotEmpty(j.getString("idgpe"))) {
                        if (!getOrElse(j.getBoolean("usedInCourses"), false))
                            continue;
                        final String code = j.getString("code");
                        if (isNotEmpty(code) && isNotEmpty(j.getString("code_gep"))) {
                            res.add(structureExternalId + "$" + j.getString("code_gep") + "_" + code + "$"
                                    + j.getString("idgpe"));
                        } else if (isNotEmpty(code) && isNotEmpty(j.getString("code_div"))) {
                            res.add(structureExternalId + "$" + j.getString("code_div") + "_" + code + "$"
                                    + j.getString("idgpe"));
                        }/*  ww  w  .java2  s. c  o m*/
                    } else if (isEmpty(j.getString("externalId")) && isNotEmpty(name)) {
                        res.add(structureExternalId + "$" + name + "$" + j.getString("id"));
                    } else if (isNotEmpty(j.getString("externalId"))) {
                        res.add(j.getString("externalId") + "$" + j.getString("id"));
                    }
                }
            }
        }
    }
    return res;
}

From source file:org.entcore.feeder.utils.Report.java

License:Open Source License

private JsonObject cloneAndFilterResults(Optional<String> prefixAcademy) {
    JsonObject results = this.result.copy();
    if (prefixAcademy.isPresent()) {
        // filter each ignored object by externalId starting with academy name
        String prefix = prefixAcademy.get();
        JsonObject ignored = results.getJsonObject("ignored");
        Set<String> domains = ignored.fieldNames();
        for (String domain : domains) {
            JsonArray filtered = ignored.getJsonArray(domain, new JsonArray()).stream().filter(ig -> {
                if (ig instanceof JsonObject && ((JsonObject) ig).containsKey("object")) {
                    JsonObject object = ((JsonObject) ig).getJsonObject("object");
                    String externalId = object.getString("externalId");
                    return StringUtils.startsWithIgnoreCase(externalId, prefix);
                } else {
                    // keep in list because it is not a concerned object
                    return true;
                }/*from w  w  w.  j  a va2s  .c om*/
            }).collect(JsonArray::new, JsonArray::add, JsonArray::addAll);//
            ignored.put(domain, filtered);
        }
        // userExternalIds FIltered
        JsonArray usersExternalIdsFiltered = results.getJsonArray("usersExternalIds", new JsonArray()).stream()
                .filter(value -> {
                    return (value instanceof String
                            && StringUtils.startsWithIgnoreCase((String) value, prefix));
                }).collect(JsonArray::new, JsonArray::add, JsonArray::addAll);//
        results.put("usersExternalIds", usersExternalIdsFiltered);
    }
    return results;
}

From source file:org.entcore.workspace.service.WorkspaceService.java

License:Open Source License

private void updateStorage(JsonObject added, JsonObject removed) {
    updateStorage(new fr.wseduc.webutils.collections.JsonArray().add(added), new JsonArray().add(removed));
}

From source file:org.etourdot.vertx.marklogic.impl.MarkLogicDocumentImpl.java

License:Open Source License

void readDocuments(JsonArray docIds, List<String> categories, Handler<AsyncResult<JsonArray>> resultHandler) {
    MultiPartRequest marklogicRequest = restService.newMultipartRequest();
    marklogicRequest.get(DOCUMENTS_URL).addParam(FORMAT, "json").addParams(CATEGORY, categories);
    docIds.stream().forEach(docId -> marklogicRequest.addParam(MarkLogicConstants.URI, (String) docId));
    marklogicRequest.execute(response -> {
        SearchResponse searchResponse = new SearchResponse(response);
        searchResponse.endHandler(marklogicResponse -> {
            if (HttpResponseStatus.OK.code() == marklogicResponse.statusCode()) {
                JsonArray documents = new JsonArray();
                for (Document document : ((SearchResponse) marklogicResponse).getDocuments()) {
                    documents.add(document.toJson());
                }/*from w w  w. j a va2  s .  c  o  m*/
                resultHandler.handle(Future.succeededFuture(documents));
            }
            if (HttpResponseStatus.NOT_FOUND.code() == marklogicResponse.statusCode()) {
                resultHandler.handle(
                        Future.failedFuture(new ResourceNotFoundException(marklogicResponse.statusMessage())));
            }
            resultHandler.handle(Future.succeededFuture());
        });
        searchResponse.process();
    });
}

From source file:org.etourdot.vertx.marklogic.impl.MarkLogicDocumentImpl.java

License:Open Source License

void saveDocuments(Documents documents, TransformOptions transformOptions,
        Handler<AsyncResult<JsonArray>> resultHandler) {
    logger.debug("Start saveDocuments " + this);
    MultiPartRequest marklogicRequest = restService.newMultipartRequest();
    marklogicRequest.post(DOCUMENTS_URL);
    documents.getDocumentsList().stream().forEach(marklogicRequest::addDocument);
    if (transformOptions != null) {
        marklogicRequest.addParam(TRANSFORM, transformOptions.getName());
        if (transformOptions.hasParameters()) {
            for (Map.Entry<String, Object> param : transformOptions.getParameters().getMap().entrySet()) {
                marklogicRequest.addParam("trans:" + param.getKey(), (String) param.getValue());
            }//  www .j ava 2s  .  c  om
        }
    }
    logger.debug("saveDocuments request:" + marklogicRequest);
    marklogicRequest.execute(response -> {
        BulkResponse bulkResponse = new BulkResponse(response);
        bulkResponse.endHandler(marklogicResponse -> {
            logger.debug("saveDocuments request endhandler:" + marklogicRequest);
            if (HttpResponseStatus.OK.code() == marklogicResponse.statusCode()) {
                JsonArray resultDocs = new JsonArray();
                for (Document document : ((BulkResponse) marklogicResponse).getDocuments()) {
                    resultDocs.add(document.getUri());
                }
                resultHandler.handle(Future.succeededFuture(resultDocs));
            }
        });
        bulkResponse.process();
    });
}

From source file:org.etourdot.vertx.marklogic.impl.MarkLogicDocumentImpl.java

License:Open Source License

private void save(Document document, TransformOptions transformOptions,
        Handler<AsyncResult<JsonArray>> resultHandler) {
    final Format format = Format.valueOf(document.getFormat());
    MarkLogicRequest marklogicRequest = restService.newMarklogicRequest();
    if (document.hasUri()) {
        marklogicRequest.put(DOCUMENTS_URL).addParam(MarkLogicConstants.URI, document.getUri())
                .withResponseHandler(response -> {
                    if (HttpResponseStatus.CREATED.code() == response.statusCode()) {
                        String uri = response.getDocumentUri();
                        if (uri != null) {
                            resultHandler.handle(Future.succeededFuture(new JsonArray().add(uri)));
                        }/*w  w  w  . j  a va 2  s.co  m*/
                    } else if (HttpResponseStatus.NO_CONTENT.code() == response.statusCode()) {
                        resultHandler.handle(Future.succeededFuture(new JsonArray().add(document.getUri())));
                    }
                });
    } else if (document.isNewDocument()) {
        marklogicRequest.post(DOCUMENTS_URL).addParam(EXTENSION, document.getExtension())
                .addParam(DIRECTORY, document.getDirectory()).withResponseHandler(response -> {
                    if (HttpResponseStatus.CREATED.code() == response.statusCode()) {
                        String uri = response.getDocumentUri();
                        if (uri != null) {
                            resultHandler.handle(Future.succeededFuture(new JsonArray().add(uri)));
                        }
                    }
                });
    }
    if (document.hasQuality()) {
        marklogicRequest.addParam(QUALITY, Integer.toString(document.getQuality()));
    }
    if (document.hasProperties()) {
        for (Map.Entry<String, Object> property : document.getProperties().getMap().entrySet()) {
            marklogicRequest.addParam("prop:" + property.getKey(), (String) property.getValue());
        }
    }
    if (document.hasPermissions()) {
        document.getPermissions().stream().forEach(perm -> {
            Permission permission = new Permission((JsonObject) perm);
            permission.getCapabilities().stream().forEach(capability -> marklogicRequest
                    .addParam("perm:" + permission.getRoleName(), (String) capability));
        });
    }
    marklogicRequest.addParam(CATEGORY, CONTENT);
    if (document.hasCollections()) {
        document.getCollections().stream()
                .forEach(coll -> marklogicRequest.addParam(COLLECTION, (String) coll));
    }
    marklogicRequest.addParam(FORMAT, format.getFormat());
    if (Format.JSON == format) {
        marklogicRequest.withBody(((JsonObject) document.getContent()));
    } else if (Format.XML == format) {
        marklogicRequest.withBody((String) document.getContent(), Format.XML);
    } else if (Format.TEXT == format) {
        marklogicRequest.withBody((String) document.getContent(), Format.TEXT);
    } else if (Format.BINARY == format) {
        marklogicRequest.withBody((String) document.getContent(), Format.TEXT);
    }
    if (transformOptions != null) {
        marklogicRequest.addParam(TRANSFORM, transformOptions.getName());
        if (transformOptions.hasParameters()) {
            for (Map.Entry<String, Object> param : transformOptions.getParameters().getMap().entrySet()) {
                marklogicRequest.addParam("trans:" + param.getKey(), (String) param.getValue());
            }
        }
    }
    marklogicRequest.execute();
}

From source file:org.etourdot.vertx.marklogic.impl.MarkLogicSearchImpl.java

License:Open Source License

void searchDocuments(SearchOptions searchOptions, Handler<AsyncResult<JsonArray>> resultHandler) {
    requireNonNull(searchOptions, "searchOptions cannot be null");
    requireNonNull(resultHandler, "resultHandler cannot be null");

    doSeachDocPage(searchOptions, marklogicResponse -> {
        JsonArray documents = new JsonArray();
        if (HttpResponseStatus.OK.code() == marklogicResponse.statusCode()) {
            for (Document document : ((MultiPartResponse) marklogicResponse).getDocuments()) {
                documents.add(document.toJson());
            }//from   w  w  w  .ja  v  a 2s. c  om
            resultHandler.handle(Future.succeededFuture(documents));
        }
        if (HttpResponseStatus.NOT_FOUND.code() == marklogicResponse.statusCode()) {
            resultHandler.handle(
                    Future.failedFuture(new ResourceNotFoundException(marklogicResponse.statusMessage())));
        }
        resultHandler.handle(Future.succeededFuture());
    });
}

From source file:org.etourdot.vertx.marklogic.model.client.impl.DocumentImpl.java

License:Open Source License

public DocumentImpl() {
    this.category = new JsonArray();
}