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

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

Introduction

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

Prototype

public int size() 

Source Link

Document

Get the number of values in this JSON array

Usage

From source file:org.entcore.feeder.timetable.AbstractTimetableImporter.java

License:Open Source License

private void persistBulKCourses() {
    final JsonArray cf = coursesBuffer;
    coursesBuffer = new fr.wseduc.webutils.collections.JsonArray();
    final int countCoursesBuffer = cf.size();
    if (countCoursesBuffer > 0) {
        mongoDb.bulk(COURSES, cf, new Handler<Message<JsonObject>>() {
            @Override//from w w w . j  a  va  2s  .  com
            public void handle(Message<JsonObject> event) {
                if (!"ok".equals(event.body().getString("status"))) {
                    if (event.body().getString("message") == null
                            || !event.body().getString("message").contains("duplicate key error")) {
                        report.addError("error.persist.course");
                    } else {
                        log.warn("Duplicate courses keys.");
                    }
                }
                if (countMongoQueries.addAndGet(-countCoursesBuffer) == 0) {
                    end();
                }
            }
        });
    }
}

From source file:org.entcore.feeder.timetable.AbstractTimetableImporter.java

License:Open Source License

private void persEducNatToClasses(JsonObject object) {
    final JsonArray classes = object.getJsonArray("classes");
    if (classes != null) {
        final JsonObject params = new JsonObject().put("structureExternalId", structureExternalId)
                .put("classes", classes).put("source", getSource())
                .put("outDate", DateTime.now().plusDays(1).getMillis()).put("now", importTimestamp);
        final JsonArray teacherIds = object.getJsonArray("teacherIds");
        if (teacherIds != null && teacherIds.size() > 0) {
            params.put("profile", "Teacher");
            for (Object id : teacherIds) {
                if (id != null) {
                    txXDT.add(PERSEDUCNAT_TO_CLASSES, params.copy().put("id", id.toString()));
                }//from w  w w. ja  va  2 s  .c  o m
            }
        }
        final JsonArray personnelIds = object.getJsonArray("personnelIds");
        if (personnelIds != null && personnelIds.size() > 0) {
            params.put("profile", "Personnel");
            for (Object id : personnelIds) {
                if (id != null) {
                    txXDT.add(PERSEDUCNAT_TO_CLASSES, params.copy().put("id", id.toString()));
                }
            }
        }
    }
}

From source file:org.entcore.feeder.timetable.AbstractTimetableImporter.java

License:Open Source License

private void persEducNatToSubjects(JsonObject object) {
    final String subjectId = object.getString("subjectId");
    final JsonArray teacherIds = object.getJsonArray("teacherIds");
    if (isNotEmpty(subjectId) && teacherIds != null && teacherIds.size() > 0) {
        final JsonObject params = new JsonObject().put("subjectId", subjectId).put("teacherIds", teacherIds)
                .put("classes", object.getJsonArray("classes", new fr.wseduc.webutils.collections.JsonArray()))
                .put("groups", object.getJsonArray("groups", new fr.wseduc.webutils.collections.JsonArray()))
                .put("source", getSource()).put("now", importTimestamp);
        txXDT.add(LINK_SUBJECT, params);
    }/*w w w  .j  av a  2s.  co m*/
}

From source file:org.entcore.feeder.timetable.AbstractTimetableImporter.java

License:Open Source License

public static void updateMergedUsers(JsonArray mergedUsers) {
    if (mergedUsers == null)
        return;//from   www. java2 s  .  co  m
    long now = System.currentTimeMillis();
    for (int i = 1; i < mergedUsers.size(); i += 2) {
        final JsonArray a = mergedUsers.getJsonArray(i);
        if (a.size() > 0) {
            updateMergedUsers(a.getJsonObject(0), now);
        }
    }
}

From source file:org.entcore.feeder.timetable.AbstractTimetableImporter.java

License:Open Source License

public static void transition(final String structureExternalId) {
    if (isNotEmpty(structureExternalId)) {
        final String query = "MATCH (s:Structure {externalId: {externalId}}) RETURN s.id as structureId";
        final JsonObject params = new JsonObject().put("externalId", structureExternalId);
        TransactionManager.getNeo4jHelper().execute(query, params, new Handler<Message<JsonObject>>() {
            @Override/*  ww w . j  av a 2  s . c  o m*/
            public void handle(Message<JsonObject> event) {
                final JsonArray res = event.body().getJsonArray("result");
                if ("ok".equals(event.body().getString("status")) && res != null && res.size() > 0) {
                    transitionDeleteCourses(res.getJsonObject(0));
                    transitionDeleteSubjectsAndMapping(structureExternalId);
                }
            }
        });
    } else {
        transitionDeleteCourses(new JsonObject());
        transitionDeleteSubjectsAndMapping(structureExternalId);
    }
}

From source file:org.entcore.feeder.timetable.AbstractTimetableImporter.java

License:Open Source License

public static void initStructure(final EventBus eb, final Message<JsonObject> message) {
    final JsonObject conf = message.body().getJsonObject("conf");
    if (conf == null) {
        message.reply(new JsonObject().put("status", "error").put("message", "invalid.conf"));
        return;//from ww w.java 2 s  .  c o  m
    }
    final String query = "MATCH (s:Structure {id:{structureId}}) "
            + "RETURN (NOT(HAS(s.timetable)) OR s.timetable <> {type}) as update ";
    TransactionManager.getNeo4jHelper().execute(query, conf, new Handler<Message<JsonObject>>() {
        @Override
        public void handle(final Message<JsonObject> event) {
            final JsonArray j = event.body().getJsonArray("result");
            if ("ok".equals(event.body().getString("status")) && j != null && j.size() == 1
                    && j.getJsonObject(0).getBoolean("update", false)) {
                try {
                    TransactionHelper tx = TransactionManager.getTransaction();
                    final String q1 = "MATCH (s:Structure {id : {structureId}})<-[:DEPENDS]-(fg:FunctionalGroup) "
                            + "WHERE NOT(HAS(s.timetable)) OR s.timetable <> {type} "
                            + "OPTIONAL MATCH fg<-[:IN]-(u:User) "
                            + "RETURN fg.id as group, fg.name as groupName, collect(u.id) as users ";
                    final String q2 = "MATCH (s:Structure {id: {structureId}}) "
                            + "WHERE NOT(HAS(s.timetable)) OR s.timetable <> {type} "
                            + "SET s.timetable = {typeUpdate} " + "WITH s "
                            + "MATCH s<-[:DEPENDS]-(fg:FunctionalGroup), s<-[:SUBJECT]-(sub:Subject) "
                            + "DETACH DELETE fg, sub ";
                    final String q3 = "MATCH (s:Structure {id: {structureId}})<-[:MAPPING]-(cm:ClassesMapping) "
                            + "DETACH DELETE cm";
                    tx.add(q1, conf);
                    tx.add(q2, (isEmpty(conf.getString("type")) ? conf.putNull("typeUpdate")
                            : conf.put("typeUpdate", conf.getString("type"))));
                    tx.add(q3, conf);
                    tx.commit(new Handler<Message<JsonObject>>() {
                        @Override
                        public void handle(Message<JsonObject> res) {
                            if ("ok".equals(res.body().getString("status"))) {
                                final JsonArray r = res.body().getJsonArray("results");
                                if (r != null && r.size() == 2) {
                                    Transition.publishDeleteGroups(eb, log, r.getJsonArray(0));
                                }
                                final JsonObject matcher = new JsonObject().put("structureId",
                                        conf.getString("structureId"));
                                MongoDb.getInstance().delete(COURSES, matcher,
                                        new Handler<Message<JsonObject>>() {
                                            @Override
                                            public void handle(Message<JsonObject> mongoResult) {
                                                if (!"ok".equals(mongoResult.body().getString("status"))) {
                                                    log.error("Error deleting courses : "
                                                            + mongoResult.body().getString("message"));
                                                }
                                                message.reply(event.body());
                                            }
                                        });
                            } else {
                                message.reply(res.body());
                            }
                        }
                    });
                } catch (TransactionException e) {
                    log.error("Transaction error when init timetable structure", e);
                    message.reply(new JsonObject().put("status", "error").put("message", e.getMessage()));
                }
            } else {
                message.reply(event.body());
            }
        }
    });
}

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

License:Open Source License

private void userExternalId(final Handler<Void> handler) {
    if (!userImportedPronoteId.isEmpty()) {
        final String query = "MATCH (u:User) where u.IDPN IN {pronoteIds} RETURN COLLECT(u.externalId) as externalIds";
        TransactionManager.getNeo4jHelper().execute(query,
                new JsonObject().put("pronoteIds",
                        new fr.wseduc.webutils.collections.JsonArray(new ArrayList<>(userImportedPronoteId))),
                new Handler<Message<JsonObject>>() {
                    @Override//ww  w . jav a  2  s.  c o m
                    public void handle(Message<JsonObject> event) {
                        JsonArray res = event.body().getJsonArray("result");
                        if ("ok".equals(event.body().getString("status")) && res.size() == 1) {
                            JsonArray r = res.getJsonObject(0).getJsonArray("externalIds");
                            if (r != null) {
                                userImportedExternalId.addAll(r.getList());
                            }
                        }
                        handler.handle(null);
                    }
                });
    } else {
        handler.handle(null);
    }
}

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

License:Open Source License

void initPeriods(JsonObject currentEntity) {
    JsonArray weeks = currentEntity.getJsonArray("semaine");
    if (weeks != null && weeks.size() > 0) {
        int oldWeek = startDateWeek1.getWeekOfWeekyear();
        for (Object o : weeks) {
            if (o instanceof JsonObject) {
                int week = Integer.parseInt(((JsonObject) o).getString("num"));
                if (week != oldWeek) {
                    periods.put(oldWeek, (week == 1 ? maxYearWeek : week - 1));
                    oldWeek = week;/*from w  ww . ja  va  2 s .c o  m*/
                }
            }
        }
        periods.put(oldWeek, new DateTime(endStudents).getWeekOfWeekyear());
        for (int i = new DateTime(endStudents).getWeekOfWeekyear() + 1; i < startDateWeek1
                .getWeekOfWeekyear(); i++) {
            holidaysWeeks.add(i);
        }
    }
}

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

License:Open Source License

private static JsonObject siecleConverter(JsonArray value) {
    JsonObject res = new JsonObject();
    JsonArray ENTEleveParents = new fr.wseduc.webutils.collections.JsonArray();
    Set<String> ENTEleveAutoriteParentale = new HashSet<>();
    String ENTEleveAutoriteParentale1 = "";
    String ENTEleveAutoriteParentale2 = "";
    String ENTElevePersRelEleve1 = "";
    String ENTEleveQualitePersRelEleve1 = "";
    String ENTElevePersRelEleve2 = "";
    String ENTEleveQualitePersRelEleve2 = "";

    // prevent missing "ENTEleveAutoriteParentale" if item is duplicate
    if (value.size() > 2) {
        final Map<String, String> tmp = new HashMap<>();
        for (Object o : value) {
            final String[] s = ((String) o).split("\\$", 2);
            final String v = tmp.get(s[0]);
            if (v == null || "1$1$1$1$0".equals(v)) {
                tmp.put(s[0], s[1]);/*  ww  w. j  av  a2 s .com*/
            }
        }
        JsonArray tmpArray = new fr.wseduc.webutils.collections.JsonArray();
        for (Map.Entry<String, String> e : tmp.entrySet()) {
            tmpArray.add(e.getKey() + "$" + e.getValue());
        }
        value = tmpArray;
    }

    for (Object o : value) {
        String[] s = ((String) o).split("\\$");
        if ("1".equals(s[1]) || "2".equals(s[1]) || "10".equals(s[1]) || "20".equals(s[1])) {
            if (!ENTEleveParents.contains(s[0])) {
                ENTEleveParents.add(s[0]);
            }
        } else if ("1".equals(s[2]) || "1".equals(s[4]) || "1".equals(s[5])) {
            if ("1".equals(s[2])) {
                if (ENTElevePersRelEleve1 == null || ENTElevePersRelEleve1.isEmpty()) {
                    ENTElevePersRelEleve1 = s[0];
                    ENTEleveQualitePersRelEleve1 = "FINANCIER";
                } else if (ENTElevePersRelEleve2 == null || ENTElevePersRelEleve2.isEmpty()) {
                    ENTElevePersRelEleve2 = s[0];
                    ENTEleveQualitePersRelEleve2 = "FINANCIER";
                } else if ("PAIEMENT".equals(ENTEleveQualitePersRelEleve1)) {
                    ENTElevePersRelEleve1 = s[0];
                    ENTEleveQualitePersRelEleve1 = "FINANCIER";
                } else if ("PAIEMENT".equals(ENTEleveQualitePersRelEleve2)) {
                    ENTElevePersRelEleve2 = s[0];
                    ENTEleveQualitePersRelEleve2 = "FINANCIER";
                }
            } else if ("1".equals(s[4])) {
                if (ENTElevePersRelEleve1 == null || ENTElevePersRelEleve1.isEmpty()) {
                    ENTElevePersRelEleve1 = s[0];
                    ENTEleveQualitePersRelEleve1 = "CONTACT";
                } else if (ENTElevePersRelEleve2 == null || ENTElevePersRelEleve2.isEmpty()) {
                    ENTElevePersRelEleve2 = s[0];
                    ENTEleveQualitePersRelEleve2 = "CONTACT";
                } else if ("PAIEMENT".equals(ENTEleveQualitePersRelEleve1)) {
                    ENTElevePersRelEleve1 = s[0];
                    ENTEleveQualitePersRelEleve1 = "CONTACT";
                } else if ("PAIEMENT".equals(ENTEleveQualitePersRelEleve2)) {
                    ENTElevePersRelEleve2 = s[0];
                    ENTEleveQualitePersRelEleve2 = "CONTACT";
                }
            } else if ("1".equals(s[5])) {
                if (ENTElevePersRelEleve1 == null || ENTElevePersRelEleve1.isEmpty()) {
                    ENTElevePersRelEleve1 = s[0];
                    ENTEleveQualitePersRelEleve1 = "PAIEMENT";
                } else if (ENTElevePersRelEleve2 == null || ENTElevePersRelEleve2.isEmpty()) {
                    ENTElevePersRelEleve2 = s[0];
                    ENTEleveQualitePersRelEleve2 = "PAIEMENT";
                }
            }
        }
        if ("1".equals(s[3])) {
            if (isEmpty(ENTEleveAutoriteParentale1)) {
                ENTEleveAutoriteParentale1 = s[0];
            }
            ENTEleveAutoriteParentale.add(s[0]);
        }
        if (isEmpty(ENTEleveAutoriteParentale2) && "2".equals(s[3])) {
            ENTEleveAutoriteParentale2 = s[0];
        }
    }

    if (!ENTEleveAutoriteParentale1.isEmpty()
            && !ENTEleveAutoriteParentale.contains(ENTEleveAutoriteParentale1)) {
        ENTEleveAutoriteParentale.add(ENTEleveAutoriteParentale1);
    }
    if (!ENTEleveAutoriteParentale2.isEmpty()
            && !ENTEleveAutoriteParentale.contains(ENTEleveAutoriteParentale2)) {
        ENTEleveAutoriteParentale.add(ENTEleveAutoriteParentale2);
    }
    res.put("ENTEleveParents", ENTEleveParents);
    res.put("ENTEleveAutoriteParentale",
            new fr.wseduc.webutils.collections.JsonArray(new ArrayList<>(ENTEleveAutoriteParentale)));
    res.put("ENTElevePersRelEleve1", ENTElevePersRelEleve1);
    res.put("ENTEleveQualitePersRelEleve1", ENTEleveQualitePersRelEleve1);
    res.put("ENTElevePersRelEleve2", ENTElevePersRelEleve2);
    res.put("ENTEleveQualitePersRelEleve2", ENTEleveQualitePersRelEleve2);
    res.put("ENTElevePersRelEleve", value);
    return res;
}

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

License:Open Source License

private void countDiff(Optional<String> prefixAcademy, String source, final Handler<JsonObject> handler) {
    try {/*  www  . j ava 2 s.  c om*/
        TransactionHelper tx = TransactionManager.getTransaction();
        JsonObject params = new JsonObject().put("source", source).put("start", startTime).put("end", endTime)
                .put("startTime", new DateTime(startTime).toString())
                .put("endTime", new DateTime(endTime).toString());
        if (prefixAcademy.isPresent()) {
            params.put("prefixAcademy", prefixAcademy.get());
        }
        tx.add("MATCH (u:User {source:{source}}) "
                + "WHERE HAS(u.created) AND u.created >= {startTime} AND u.created < {endTime} "
                + (prefixAcademy.isPresent() ? " AND u.externalId STARTS WITH {prefixAcademy} " : "")//
                + "RETURN count(*) as createdCount", params);
        tx.add("MATCH (u:User {source:{source}}) "
                + "WHERE HAS(u.modified) AND u.modified >= {startTime} AND u.modified < {endTime} "
                + (prefixAcademy.isPresent() ? " AND u.externalId STARTS WITH {prefixAcademy} " : "")//
                + "RETURN count(*) as modifiedCount", params);
        tx.add("MATCH (u:User {source:{source}}) "
                + "WHERE HAS(u.disappearanceDate) AND u.disappearanceDate >= {start} AND u.disappearanceDate < {end} "
                + (prefixAcademy.isPresent() ? " AND u.externalId STARTS WITH {prefixAcademy} " : "")//
                + "RETURN count(*) as disappearanceCount", params);
        tx.commit(new Handler<Message<JsonObject>>() {
            @Override
            public void handle(Message<JsonObject> event) {
                JsonArray results = event.body().getJsonArray("results");
                if ("ok".equals(event.body().getString("status")) && results != null && results.size() == 3) {
                    try {
                        final JsonObject result = cloneAndFilterResults(prefixAcademy);
                        int created = results.getJsonArray(0).getJsonObject(0).getInteger("createdCount");
                        int modified = results.getJsonArray(1).getJsonObject(0).getInteger("modifiedCount");
                        int disappearance = results.getJsonArray(2).getJsonObject(0)
                                .getInteger("disappearanceCount");
                        result.put("userCount", new JsonObject().put("created", created)
                                .put("modified", (modified - created)).put("disappearance", disappearance));
                        result.put("source", source);
                        result.put("startTime", new DateTime(startTime).toString());
                        result.put("endTime", new DateTime(endTime).toString());
                        result.put("loadedFiles", cloneAndFilterFiles(prefixAcademy));
                        handler.handle(result);
                        //                     persist(new Handler<Message<JsonObject>>() {
                        //                        @Override
                        //                        public void handle(Message<JsonObject> event) {
                        //                           if (!"ok".equals(event.body().getString("status"))) {
                        //                              log.error("Error persist report : " + event.body().getString("message"));
                        //                           }
                        //                        }
                        //                     });
                    } catch (RuntimeException e) {
                        log.error("Error parsing count diff response.", e);
                        handler.handle(null);
                    }
                } else {
                    log.error("Error in count diff transaction.");
                    handler.handle(null);
                }
            }
        });
    } catch (TransactionException e) {
        log.error("Exception in count diff transaction.", e);
        if (handler != null) {
            handler.handle(null);
        }
    }
}