Example usage for org.joda.time Months ONE

List of usage examples for org.joda.time Months ONE

Introduction

In this page you can find the example usage for org.joda.time Months ONE.

Prototype

Months ONE

To view the source code for org.joda.time Months ONE.

Click Source Link

Document

Constant representing one month.

Usage

From source file:energy.usef.brp.workflow.settlement.send.BrpSendSettlementMessagesCoordinator.java

License:Apache License

/**
 * This method starts the workflow when triggered by an event.
 *
 * @param event {@link SendSettlementMessageEvent} event which starts the workflow.
 *//*from  w  ww.  j av a 2 s  . c o m*/
public void invokeWorkflow(@Observes SendSettlementMessageEvent event) {
    LOGGER.debug(USEFConstants.LOG_COORDINATOR_START_HANDLING_EVENT, event);
    LocalDate dateFrom = new LocalDate(event.getYear(), event.getMonth(), 1);
    LocalDate dateUntil = dateFrom.plus(Months.ONE).minusDays(1);

    LOGGER.debug("SendSettlementMessageEvent for {} until {}.", dateFrom, dateUntil);

    // Fetch all aggregators having active connections in the period defined by [dateFrom, dateUntil] .
    List<String> aggregators = corePlanboardBusinessService
            .findConnectionGroupWithConnectionsWithOverlappingValidity(dateFrom, dateUntil).values().stream()
            .flatMap(map -> map.keySet().stream())
            .map(connectionGroup -> ((AgrConnectionGroup) connectionGroup).getAggregatorDomain()).distinct()
            .collect(Collectors.toList());

    // Fetch all FlexOrderSettlement for the period
    Map<String, List<energy.usef.core.model.FlexOrderSettlement>> flexOrderSettlementPerAggregator = coreSettlementBusinessService
            .findFlexOrderSettlementsForPeriod(dateFrom, dateUntil, Optional.empty(), Optional.empty()).stream()
            .collect(Collectors.groupingBy(
                    flexOrderSettlement -> flexOrderSettlement.getFlexOrder().getParticipantDomain()));

    if (aggregators.isEmpty()) {
        LOGGER.error(
                "SendSettlementMessageEvent triggered while there are no aggregators eligible for settlement.");
        return;
    }

    for (String aggregator : aggregators) {
        SettlementMessage settlementMessage = buildSettlementMessage(
                flexOrderSettlementPerAggregator.get(aggregator), dateFrom);
        populateSettlementMessageData(settlementMessage, aggregator, dateFrom, dateUntil);
        storeSettlementMessage(aggregator, flexOrderSettlementPerAggregator.get(aggregator));
        jmsHelperService.sendMessageToOutQueue(XMLUtil.messageObjectToXml(settlementMessage));
    }
    LOGGER.debug(USEFConstants.LOG_COORDINATOR_FINISHED_HANDLING_EVENT, event);
}

From source file:energy.usef.dso.workflow.settlement.send.DsoSendSettlementMessagesCoordinator.java

License:Apache License

/**
 * This method starts the workflow when triggered by an event.
 *
 * @param event {@link SendSettlementMessageEvent} event which starts the workflow.
 *///  w ww .  j  ava 2  s .  c o  m
public void invokeWorkflow(@Observes SendSettlementMessageEvent event) {
    LOGGER.debug(USEFConstants.LOG_COORDINATOR_START_HANDLING_EVENT, event);

    LocalDate dateFrom = new LocalDate(event.getYear(), event.getMonth(), 1);
    LocalDate dateUntil = dateFrom.plus(Months.ONE).minusDays(1);

    // Fetch all aggregators having ptusettlement in the period defined by [dateFrom, dateUntil].
    List<String> aggregators = dsoPlanboardBusinessService
            .findAggregatorsWithOverlappingActivityForPeriod(dateFrom, dateUntil).stream()
            .map(AggregatorOnConnectionGroupState::getAggregator).map(Aggregator::getDomain).distinct()
            .collect(Collectors.toList());

    // Fetch all FlexOrderSettlement for the period
    Map<String, List<energy.usef.core.model.FlexOrderSettlement>> flexOrderSettlementPerAggregator = coreSettlementBusinessService
            .findFlexOrderSettlementsForPeriod(dateFrom, dateUntil, Optional.empty(), Optional.empty()).stream()
            .collect(Collectors.groupingBy(
                    flexOrderSettlement -> flexOrderSettlement.getFlexOrder().getParticipantDomain()));

    for (String aggregator : aggregators) {
        SettlementMessage settlementMessage = buildSettlementMessage(
                flexOrderSettlementPerAggregator.get(aggregator), dateFrom);
        populateSettlementMessageData(settlementMessage, aggregator, dateFrom, dateUntil);
        storeSettlementMessage(aggregator, flexOrderSettlementPerAggregator.get(aggregator));
        jmsHelperService.sendMessageToOutQueue(XMLUtil.messageObjectToXml(settlementMessage));
    }
    LOGGER.debug(USEFConstants.LOG_COORDINATOR_FINISHED_HANDLING_EVENT, event);
}

From source file:net.schweerelos.timeline.model.Timeline.java

License:Open Source License

private void recalculate() {
    if (start == null || end == null) {
        logger.warn("recalculating aborted, start and/or end is null");
        numSlices = 0;/*from w ww. ja  v  a 2 s.  c  o m*/
        return;
    }
    Interval interval = new Interval(start, end);

    if (Years.yearsIn(interval).isGreaterThan(Years.ZERO)) {
        // make it start at the start of the current increment mode
        start = start.withDayOfYear(start.dayOfYear().getMinimumValue());
        end = end.withDayOfYear(end.dayOfYear().getMaximumValue());
        interval = new Interval(start, end);

        // figure out number of slices
        numSlices = Years.yearsIn(interval).getYears();
        if (start.plusYears(numSlices).isBefore(end)) {
            numSlices += 1;
        }

        // update label extractor
        sliceLabelExtractor = new SliceLabelExtractor() {
            @Override
            public String extractLabel(DateTime from) {
                return from.year().getAsShortText();
            }
        };

        // update increment
        increment = Years.ONE.toPeriod();
        incrementMode = Mode.Years;
    } else if (Months.monthsIn(interval).isGreaterThan(Months.ZERO)) {
        // make it start at the start of the current increment mode
        start = start.withDayOfMonth(start.dayOfMonth().getMinimumValue());
        end = end.withDayOfMonth(end.dayOfMonth().getMaximumValue());
        interval = new Interval(start, end);

        numSlices = Months.monthsIn(interval).getMonths();
        if (start.plusMonths(numSlices).isBefore(end)) {
            numSlices += 1;
        }

        sliceLabelExtractor = new SliceLabelExtractor() {
            @Override
            public String extractLabel(DateTime from) {
                return from.monthOfYear().getAsShortText();
            }
        };

        increment = Months.ONE.toPeriod();
        incrementMode = Mode.Months;
    } else if (Weeks.weeksIn(interval).isGreaterThan(Weeks.ZERO)) {
        start = start.withDayOfWeek(start.dayOfWeek().getMinimumValue());
        end = end.withDayOfWeek(end.dayOfWeek().getMaximumValue());
        interval = new Interval(start, end);

        numSlices = Weeks.weeksIn(interval).getWeeks();
        if (start.plusWeeks(numSlices).isBefore(end)) {
            numSlices += 1;
        }

        sliceLabelExtractor = new SliceLabelExtractor() {
            @Override
            public String extractLabel(DateTime from) {
                return "W" + from.weekOfWeekyear().getAsShortText();
            }
        };

        increment = Weeks.ONE.toPeriod();
        incrementMode = Mode.Weeks;
    } else {
        numSlices = Days.daysIn(interval).getDays();
        if (start.plusDays(numSlices).isBefore(end)) {
            numSlices += 1;
        }
        if (numSlices == 0) {
            // force at least one day to be drawn
            numSlices = 1;
        }

        sliceLabelExtractor = new SliceLabelExtractor() {
            @Override
            public String extractLabel(DateTime from) {
                return from.dayOfMonth().getAsShortText();
            }
        };

        increment = Days.ONE.toPeriod();
        incrementMode = Mode.Days;
    }

    // reset time of day too
    start = start.withMillisOfDay(start.millisOfDay().getMinimumValue());
    end = end.withMillisOfDay(end.millisOfDay().getMaximumValue());

    // recalculate which intervals are within range
    intervalsWithinRange.clear();
    intervalsWithinRange.addAll(calculateIntervalsWithinRange(start, end));

    // notify listeners
    changeSupport.firePropertyChange(INTERVAL_PROPERTY_KEY, interval, new Interval(start, end));
}

From source file:org.whole.lang.xsd.parsers.SchemaDataTypeParsers.java

License:Open Source License

public static IDataTypeParser yearMonth() {
    if (yearMonthDataTypeParser == null) {
        yearMonthDataTypeParser = new AbstractISO8601DataTypeParser(yearMonthFormatter()) {
            protected Object parseWithTimeZone(DateTimeParserBucket bucket) {
                DateTimeZone zone = DateTimeZone.forOffsetMillis(bucket.getOffset());
                return new Interval(new DateTime(bucket.computeMillis(), validate(zone)), Months.ONE);
            }/*from  w  w w.  j ava 2s  . c  o m*/

            protected Object parseWithoutTimeZone(DateTimeParserBucket bucket) {
                return new LocalDate(bucket.computeMillis());
            }
        };
    }
    return yearMonthDataTypeParser;
}

From source file:org.whole.lang.xsd.parsers.SchemaDataTypeParsers.java

License:Open Source License

public static IDataTypeParser month() {
    if (monthDataTypeParser == null) {
        monthDataTypeParser = new AbstractISO8601DataTypeParser(monthFormatter()) {
            protected Object parseWithTimeZone(DateTimeParserBucket bucket) {
                DateTimeZone zone = DateTimeZone.forOffsetMillis(bucket.getOffset());
                return new Interval(new DateTime(bucket.computeMillis(), validate(zone)), Months.ONE);
            }// w  w w.j  ava 2 s.c  om

            protected Object parseWithoutTimeZone(DateTimeParserBucket bucket) {
                return new LocalDate(bucket.computeMillis());
            }
        };
    }
    return monthDataTypeParser;
}

From source file:org.zkoss.ganttz.timetracker.zoom.DetailFourTimeTrackerState.java

License:Open Source License

@Override
protected Iterator<LocalDate> getPeriodsFirstLevelGenerator(LocalDate start) {
    return new LazyGenerator<LocalDate>(start) {
        @Override/*  w  w  w  .  ja va2  s  . c  o  m*/
        protected LocalDate next(LocalDate last) {
            return last.plus(Months.ONE);
        }
    };
}