Example usage for org.joda.time MutableDateTime setDate

List of usage examples for org.joda.time MutableDateTime setDate

Introduction

In this page you can find the example usage for org.joda.time MutableDateTime setDate.

Prototype

public void setDate(final ReadableInstant instant) 

Source Link

Document

Set the date from another instant.

Usage

From source file:org.mifos.ui.core.controller.SavingsProductFormValidator.java

License:Open Source License

@SuppressWarnings({ "ThrowableInstanceNeverThrown" })
@Override//from   w w  w. ja v a 2 s .  c  om
public void validate(Object target, Errors errors) {

    SavingsProductFormBean formBean = (SavingsProductFormBean) target;

    if (formBean.getGeneralDetails().getName().trim().isEmpty()) {
        errors.reject("NotEmpty.generalDetails.name");
    }
    if (formBean.getGeneralDetails().getDescription().length() > 200) {
        errors.reject("Size.generalDetails.description");
    }

    if (formBean.getGeneralDetails().getShortName().trim().isEmpty()) {
        errors.reject("NotEmpty.generalDetails.shortName");
    }

    if (formBean.getGeneralDetails().getSelectedCategory().trim().isEmpty()) {
        errors.reject("NotEmpty.generalDetails.selectedCategory");
    }

    if (null == formBean.getGeneralDetails().getStartDateDay()
            || 1 > formBean.getGeneralDetails().getStartDateDay()
            || 31 < formBean.getGeneralDetails().getStartDateDay()) {
        errors.reject("Min.generalDetails.startDateDay");
    }

    if (null == formBean.getGeneralDetails().getStartDateMonth()
            || 1 > formBean.getGeneralDetails().getStartDateMonth()
            || 12 < formBean.getGeneralDetails().getStartDateMonth()) {
        errors.reject("Min.generalDetails.startDateMonth");
    }

    if (null == formBean.getGeneralDetails().getStartDateAsDateTime()
            || !(formBean.getGeneralDetails().getStartDateYear().length() == 4)) {
        errors.reject("Min.generalDetails.startDate");
    } else {
        MutableDateTime nextYear = new MutableDateTime();
        nextYear.setDate(new Date().getTime());
        nextYear.addYears(1);

        if (formBean.getGeneralDetails().getStartDateAsDateTime() != null
                && formBean.getGeneralDetails().getStartDateAsDateTime().compareTo(nextYear) > 0) {
            errors.reject("Min.generalDetails.startDate");
        }
    }

    if ((null != formBean.getGeneralDetails().getEndDateDay()
            || null != formBean.getGeneralDetails().getEndDateMonth()
            || null != formBean.getGeneralDetails().getEndDateMonth())
            && formBean.getGeneralDetails().getEndDateAsDateTime() == null) {
        errors.reject("Min.generalDetails.endDate");
    }

    if (formBean.getGeneralDetails().getStartDateAsDateTime() != null
            && formBean.getGeneralDetails().getEndDateAsDateTime() != null
            && formBean.getGeneralDetails().getStartDateAsDateTime()
                    .compareTo(formBean.getGeneralDetails().getEndDateAsDateTime()) > 0) {
        errors.reject("Min.generalDetails.endDate");
    }

    if (formBean.getGeneralDetails().getSelectedApplicableFor().trim().isEmpty()) {
        errors.reject("NotEmpty.generalDetails.selectedApplicableFor");
    }

    if (formBean.getSelectedDepositType().trim().isEmpty()) {
        errors.reject("NotEmpty.savingsProduct.selectedDepositType");
    } else if (formBean.isMandatory()
            && (null == formBean.getAmountForDeposit() || formBean.getAmountForDeposit() <= 0)) {
        errors.reject("Min.savingsProduct.amountForDesposit");
    }

    if (formBean.isGroupSavingAccount() && formBean.getSelectedGroupSavingsApproach().trim().isEmpty()) {
        errors.reject("NotEmpty.savingsProduct.selectedGroupSavingsApproach");
    }

    if (!formBean.isInterestRateZero()) {
        if (null == formBean.getInterestRate() || formBean.getInterestRate().doubleValue() < 1.0
                || formBean.getInterestRate().doubleValue() > 100.0
                || errorProcessor.getRejectedValue("interestRate") != null) {
            if (errorProcessor.getTarget() == null) {
                errors.reject("NotNull.savingsProduct.interestRate");
            } else {
                BindException bindException = new BindException(errorProcessor.getTarget(),
                        errorProcessor.getObjectName());
                bindException.addError(new FieldError(errorProcessor.getObjectName(), "interestRate",
                        errorProcessor.getRejectedValue("interestRate"), true,
                        new String[] { "NotNull.savingsProduct.interestRate" }, null, null));
                errors.addAllErrors(bindException);
            }
        }

        if (formBean.getSelectedInterestCalculation().trim().isEmpty()) {
            errors.reject("NotEmpty.savingsProduct.selectedInterestCalculation");
        }

        if (null == formBean.getInterestCalculationFrequency() || formBean.getInterestCalculationFrequency() < 1
                || errorProcessor.getRejectedValue("interestCalculationFrequency") != null) {
            if (errorProcessor.getTarget() == null) {
                errors.reject("NotNull.savingsProduct.interestCalculationFrequency");
            } else {
                BindException bindException = new BindException(errorProcessor.getTarget(),
                        errorProcessor.getObjectName());
                bindException.addError(new FieldError(errorProcessor.getObjectName(),
                        "interestCalculationFrequency",
                        errorProcessor.getRejectedValue("interestCalculationFrequency"), true,
                        new String[] { "NotNull.savingsProduct.interestCalculationFrequency" }, null, null));
                errors.addAllErrors(bindException);
            }
        }

        if (null == formBean.getInterestPostingMonthlyFrequency()
                || formBean.getInterestPostingMonthlyFrequency() < 1
                || errorProcessor.getRejectedValue("interestPostingMonthlyFrequency") != null) {
            if (errorProcessor.getTarget() == null) {
                errors.reject("Min.savingsProduct.interestPostingMonthlyFrequency");
            } else {
                BindException bindException = new BindException(errorProcessor.getTarget(),
                        errorProcessor.getObjectName());
                bindException.addError(new FieldError(errorProcessor.getObjectName(),
                        "interestPostingMonthlyFrequency",
                        errorProcessor.getRejectedValue("interestPostingMonthlyFrequency"), true,
                        new String[] { "Min.savingsProduct.interestPostingMonthlyFrequency" }, null, null));
                errors.addAllErrors(bindException);
            }
        }
    }

    BigDecimal minBalanceForInterestCalculation;
    try {
        minBalanceForInterestCalculation = BigDecimal
                .valueOf(Double.valueOf(formBean.getMinBalanceRequiredForInterestCalculation()));
    } catch (NumberFormatException e) {
        minBalanceForInterestCalculation = new BigDecimal("-1");
    }
    if (minBalanceForInterestCalculation.compareTo(BigDecimal.ZERO) < 0) {
        errors.reject("Min.savingsProduct.balanceRequiredForInterestCalculation");
    }

    if (formBean.getSelectedPrincipalGlCode().trim().isEmpty()) {
        errors.reject("NotEmpty.savingsProduct.selectedPrincipalGlCode");
    }

    if (formBean.getSelectedInterestGlCode().trim().isEmpty()) {
        errors.reject("NotEmpty.savingsProduct.selectedInterestGlCode");
    }
    Short digsAfterDec = configurationServiceFacade.getAccountingConfiguration().getDigitsAfterDecimal();
    Short digsBeforeDec = configurationServiceFacade.getAccountingConfiguration().getDigitsBeforeDecimal();
    Double maxWithdrawalObj = formBean.getMaxWithdrawalAmount();
    String maxWithdrawalString;

    if (maxWithdrawalObj == null) {
        maxWithdrawalString = "";
    } else {
        maxWithdrawalString = maxWithdrawalObj.toString();
    }

    int dot = maxWithdrawalString.lastIndexOf('.');
    int max = digsAfterDec + digsBeforeDec + dot;
    int withdrawalLength = maxWithdrawalString.length();

    if (maxWithdrawalString.lastIndexOf(0, dot) > digsBeforeDec) {
        errors.reject("MaxDigitsBefore.savingProduct.withdrawal", new String[] { digsBeforeDec.toString() },
                null);
    }
    if (maxWithdrawalString.lastIndexOf(dot, withdrawalLength) > digsAfterDec) {
        errors.reject("MaxDigitsAfter.savingProduct.withdrawal", new String[] { digsAfterDec.toString() },
                null);
    }
    if (withdrawalLength > max) {
        errors.reject("MaxDigitsNumber.savingProduct.withdrawal", new String[] { String.valueOf(max) }, null);
    }

    Double amountForDepositObj = formBean.getAmountForDeposit();
    String amountForDepositString;

    if (amountForDepositObj == null) {
        amountForDepositString = "";
    } else {
        amountForDepositString = amountForDepositObj.toString();
    }

    int depositLength = amountForDepositString.length();

    if (amountForDepositString.lastIndexOf(0, dot) > digsBeforeDec) {
        errors.reject("MaxDigitsBefore.savingProduct.deposit", new String[] { digsBeforeDec.toString() }, null);
    }
    if (amountForDepositString.lastIndexOf(dot, depositLength) > digsAfterDec) {
        errors.reject("MaxDigitsAfter.savingProduct.deposit", new String[] { digsAfterDec.toString() }, null);
    }
    if (depositLength > max) {
        errors.reject("MaxDigitsNumber.savingProduct.deposit", new String[] { String.valueOf(max) }, null);
    }

}

From source file:org.mongoste.core.impl.mongodb.MongoStatsEngine.java

License:Open Source License

private List<StatAction> getTargetStats(DBObject query) throws StatsEngineException {
    List<StatAction> result = new ArrayList<StatAction>();
    DBCursor dbc = null;/* w  w  w.  j  av  a 2  s  . c o m*/
    try {
        log.debug("Querying targets");
        DBCollection targets = getTargetCollection();
        long t = System.currentTimeMillis();
        DBObject fields = MongoUtil.createDoc(EVENT_ACTION, 1, FIELD_COUNT, 1, EVENT_DATE, 1);
        dbc = targets.find(query, fields);
        t = System.currentTimeMillis() - t;
        if (t > 1000) {
            log.warn("getTargetStats query: {}\n took {}s", debugTrim(query), t / 1000.0);
        }
        BasicDBObject resultDoc;
        Map<String, StatAction> actions = new HashMap<String, StatAction>();
        Map<String, Map<DateTime, StatCounter>> actionsDate = new HashMap<String, Map<DateTime, StatCounter>>();
        Map<DateTime, StatCounter> dateCount;
        StatAction action;
        StatCounter dateCounter;
        String actionName;
        Long count;
        MutableDateTime dateTime = DateUtil.getDateTimeUTC(true).toMutableDateTime();
        DateTime date;
        Date eventYearMonthTargetDate;
        int processed = 0;
        t = System.currentTimeMillis();
        while (dbc.hasNext()) {
            resultDoc = (BasicDBObject) dbc.next();
            actionName = resultDoc.getString(EVENT_ACTION);
            count = resultDoc.getLong(FIELD_COUNT);
            eventYearMonthTargetDate = (Date) resultDoc.get(EVENT_DATE);
            dateTime.setDate(eventYearMonthTargetDate.getTime());
            date = dateTime.toDateTime();
            action = actions.get(actionName);
            if (action == null) {
                actions.put(actionName, action = new StatAction(actionName, 0));
            }
            action.add(count);
            dateCount = actionsDate.get(actionName);
            if (dateCount == null) {
                dateCount = new TreeMap<DateTime, StatCounter>();
                actionsDate.put(actionName, dateCount);
            }
            dateCounter = dateCount.get(date);
            if (dateCounter == null) {
                dateCount.put(date, dateCounter = new StatCounter(actionName, 0, date.toDate()));
            }
            dateCounter.add(count);
            processed++;
        }
        //Build result list
        for (Entry<String, StatAction> entry : actions.entrySet()) {
            action = entry.getValue();
            dateCount = actionsDate.get(action.getName());
            List<StatCounter> targetList = action.getTargets();
            for (Entry<DateTime, StatCounter> entryDate : dateCount.entrySet()) {
                StatCounter counter = entryDate.getValue();
                targetList.add(counter);
            }
            result.add(action);
        }
        t = System.currentTimeMillis() - t;
        //TODO add warning level to X ms:
        if (t > 1000) {
            log.warn("getTargetStats query fetch: {}\n took {}s", debugTrim(query), t / 1000.0);
        } else {
            log.info("getTargetStats processed {} results in {}ms", processed, t);
        }
    } catch (Exception ex) {
        log.error("getTargetStats", ex);
        if (ex instanceof StatsEngineException) {
            throw (StatsEngineException) ex;
        }
        throw new StatsEngineException("getTargetStats", ex);
    } finally {
        MongoUtil.close(dbc);
    }
    return result;
}

From source file:org.openmhealth.shim.fatsecret.FatsecretShim.java

License:Apache License

@Override
public ShimDataResponse getData(ShimDataRequest shimDataRequest) throws ShimException {

    long numToSkip = 0;
    long numToReturn = 3;

    Calendar cal = Calendar.getInstance();
    cal.set(2014, Calendar.AUGUST, 1);
    Date endDate = new Date(cal.getTimeInMillis());
    cal.add(Calendar.DATE, -1);//from ww w .ja  v a 2  s  .c  o m
    Date startDate = new Date(cal.getTimeInMillis());

    DateTime startTime = new DateTime(startDate.getTime());
    DateTime endTime = new DateTime(endDate.getTime());

    MutableDateTime epoch = new MutableDateTime();
    epoch.setDate(0);

    int days = 16283; //Days.daysBetween(epoch, new DateTime()).getDays() - 1;

    String endPoint = "food_entries.get";

    String accessToken = shimDataRequest.getAccessParameters().getAccessToken();
    String tokenSecret = shimDataRequest.getAccessParameters().getTokenSecret();

    URL url = signUrl(DATA_URL + "?date=" + days + "&format=json&method=" + endPoint, accessToken, tokenSecret,
            null);
    System.out.println("Signed URL is: \n\n" + url);

    // Fetch and decode the JSON data.
    ObjectMapper objectMapper = new ObjectMapper();
    JsonNode jsonData;

    HttpGet get = new HttpGet(url.toString());
    HttpResponse response;
    try {
        response = httpClient.execute(get);
        HttpEntity responseEntity = response.getEntity();
        jsonData = objectMapper.readTree(responseEntity.getContent());
        return ShimDataResponse.result(FatsecretShim.SHIM_KEY, jsonData);

    } catch (IOException e) {
        throw new ShimException("Could not fetch data", e);
    } finally {
        get.releaseConnection();
    }
}

From source file:rapture.event.generator.RangedEventGenerator.java

License:Open Source License

public static List<TimedEventRecord> generateWeeklyEvents(DateTime start) {
    List<TimedEventRecord> ret = new ArrayList<TimedEventRecord>();
    ret.addAll(EventGenerator.generateWeeklyEventRecords(start, new EventHelper() {

        @Override//  w w  w  .java 2  s . c  o m
        public List<TimedEventRecord> filterEvent(String eventName, DateTime forWhen) {
            String scriptPrefix = "/system/timeprocessor" + eventName;
            List<TimedEventRecord> ret = new ArrayList<TimedEventRecord>();
            scriptWorkWith(eventName, scriptPrefix, forWhen, ret, 1);
            eventWorkWith(eventName, "/" + eventName, forWhen, ret, 1);
            return ret;
        }

        private ReflexRaptureScript rrs = new ReflexRaptureScript();

        private void eventWorkWith(String eventName, String prefix, DateTime forWhen,
                List<TimedEventRecord> ret, int depth) {
            List<RaptureFolderInfo> fInfo = Kernel.getEvent()
                    .listEventsByUriPrefix(ContextFactory.getKernelUser(), prefix);
            for (RaptureFolderInfo f : fInfo) {
                String next = prefix + "/" + f.getName();
                if (f.isFolder()) {
                    depth++;
                    if (depth != 4) {
                        eventWorkWith(eventName, next, forWhen, ret, depth);
                    }
                } else {
                    RaptureEvent event = Kernel.getEvent().getEvent(ContextFactory.getKernelUser(), next);
                    // Now for each of the event items, add a timedRecord
                    if (event.getScripts() != null) {
                        for (RaptureEventScript script : event.getScripts()) {
                            ret.add(getEventRecordForScript(eventName, script.getScriptURI(), forWhen));
                        }
                    }
                    if (event.getWorkflows() != null) {
                        for (RaptureEventWorkflow workflow : event.getWorkflows()) {
                            ret.add(getEventRecordForWorkflow(next, workflow.getWorkflow(), forWhen));
                        }
                    }
                }
            }
        }

        private TimedEventRecord getEventRecordForWorkflow(String eventName, String workflowId,
                DateTime forWhen) {
            // The record will have a modified timezone string first, then the hour, then the minute, we need
            // to convert that hour/minute/timezone into a local date (or actually a datetime in a given timezone usually passed in)

            String[] parts = eventName.split("/");
            String timeZoneString = parts[parts.length - 3];
            String hourString = parts[parts.length - 2];
            String minuteString = parts[parts.length - 1];
            DateTimeZone tz = EventGenerator.getRealDateTimeZone(timeZoneString);

            MutableDateTime dt = new MutableDateTime(tz);
            dt.setHourOfDay(Integer.parseInt(hourString));
            dt.setMinuteOfHour(Integer.parseInt(minuteString));

            DateTime inLocalTimeZone = dt.toDateTime(forWhen.getZone());

            TimedEventRecord rec = new TimedEventRecord();
            // Workflow w =
            // Kernel.getDecision().getWorkflow(ContextFactory.getKernelUser(),
            // workflowId);
            rec.setEventName(workflowId);
            rec.setEventContext(workflowId);
            rec.setWhen(inLocalTimeZone.toDate());
            rec.setInfoContext("green");

            DateTime endPoint = inLocalTimeZone.plusMinutes(30);
            rec.setEnd(endPoint.toDate());
            return rec;
        }

        private TimedEventRecord getEventRecordForScript(String eventName, String scriptId, DateTime forWhen) {
            String[] parts = eventName.split("/");
            String timeZoneString = parts[parts.length - 3];
            String hourString = parts[parts.length - 2];
            String minuteString = parts[parts.length - 1];
            DateTimeZone tz = EventGenerator.getRealDateTimeZone(timeZoneString);

            MutableDateTime dt = new MutableDateTime(tz);
            dt.setDate(forWhen.getMillis());
            dt.setHourOfDay(Integer.parseInt(hourString));
            dt.setMinuteOfHour(Integer.parseInt(minuteString));

            DateTime inLocalTimeZone = dt.toDateTime(forWhen.getZone());

            TimedEventRecord rec = new TimedEventRecord();
            // Put the name from the meta property "name" on the
            // script if it exists
            RaptureScript theScript = Kernel.getScript().getScript(ContextFactory.getKernelUser(), scriptId);
            String name = null;
            String color = "blue";
            if (theScript != null) {
                try {
                    ReflexParser parser = rrs.getParser(ContextFactory.getKernelUser(), theScript.getScript());
                    name = parser.scriptInfo.getProperty("name");
                    if (parser.scriptInfo.getProperty("color") != null) {
                        color = parser.scriptInfo.getProperty("color");
                    }
                } catch (Exception e) {
                    log.error("Unexpected error: " + ExceptionToString.format(e));
                }
            }
            rec.setEventName(name == null ? eventName : name);
            rec.setEventContext(scriptId);
            rec.setInfoContext(color);
            rec.setWhen(inLocalTimeZone.toDate());
            DateTime endPoint = inLocalTimeZone.plusMinutes(30);
            rec.setEnd(endPoint.toDate());
            return rec;
        }

        private void scriptWorkWith(String eventName, String prefix, DateTime forWhen,
                List<TimedEventRecord> ret, int depth) {
            Map<String, RaptureFolderInfo> fInfo = Kernel.getScript()
                    .listScriptsByUriPrefix(ContextFactory.getKernelUser(), prefix, -1);
            for (RaptureFolderInfo f : fInfo.values()) {
                String next = prefix + "/" + f.getName();
                if (f.isFolder()) {
                    if (depth != 4) {
                        scriptWorkWith(eventName, next, forWhen, ret, depth + 1);
                    } else {
                    }
                } else {
                    // This script is set to run at x/y/z.../02/00
                    // So run
                    ret.add(getEventRecordForScript(next, next, forWhen));
                }
            }
        }

    }));

    return ret;
}