List of usage examples for org.apache.commons.lang.mutable MutableInt subtract
public void subtract(Number operand)
From source file:net.atos.entng.calendar.services.impl.EventServiceMongoImpl.java
@Override public void importIcal(final String calendarId, String ics, final UserInfos user, final Handler<Either<String, JsonObject>> handler) { final JsonObject message = new JsonObject(); message.putString("action", ICalHandler.ACTION_PUT); message.putString("calendarId", calendarId); message.putString("ics", ics); final EventServiceMongoImpl eventService = this; final MutableInt i = new MutableInt(); eb.send(ICalHandler.ICAL_HANDLER_ADDRESS, message, new Handler<Message<JsonObject>>() { @Override// w w w . j av a 2 s. com public void handle(Message<JsonObject> reply) { final JsonObject result = new JsonObject(); if ("ko".equals(reply.body().getString("status"))) { handler.handle(new Either.Left<String, JsonObject>(new String("Error"))); } else { JsonObject body = reply.body(); JsonArray calendarEvents = body.getArray("events"); final JsonArray invalidCalendarEvents = body.getArray("invalidEvents"); result.putArray("invalidEvents", invalidCalendarEvents); result.putNumber("createdEvents", calendarEvents.size()); if (calendarEvents.size() == 0) { handler.handle(new Either.Right<String, JsonObject>(result)); } i.add(calendarEvents.size()); for (Object e : calendarEvents) { final JsonObject calendarEvent = (JsonObject) e; eventService.retrieveByIcsUid(calendarId, calendarEvent.getString("icsUid"), user, new Handler<Either<String, JsonObject>>() { @Override public void handle(Either<String, JsonObject> event) { // No existing event found if (event.isRight() && event.right().getValue().size() == 0) { eventService.create(calendarId, calendarEvent, user, new Handler<Either<String, JsonObject>>() { @Override public void handle(Either<String, JsonObject> event) { i.subtract(1); // There is no more events to create if (i.toInteger() == 0) { handler.handle(new Either.Right<String, JsonObject>( result)); } } }); } // Existing event found else if (event.isRight() && event.right().getValue().size() > 0) { eventService.update(calendarId, event.right().getValue().getString("_id"), calendarEvent, user, new Handler<Either<String, JsonObject>>() { @Override public void handle(Either<String, JsonObject> event) { i.subtract(1); // There is no more events to create if (i.toInteger() == 0) { handler.handle(new Either.Right<String, JsonObject>( result)); } } }); } // An error occured while retrieving the event else { i.subtract(1); if (i.toInteger() == 0) { handler.handle(new Either.Right<String, JsonObject>(result)); } } } }); } } } }); }