Example usage for org.joda.time Interval getEnd

List of usage examples for org.joda.time Interval getEnd

Introduction

In this page you can find the example usage for org.joda.time Interval getEnd.

Prototype

public DateTime getEnd() 

Source Link

Document

Gets the end of this time interval, which is exclusive, as a DateTime.

Usage

From source file:org.filteredpush.qc.date.DateUtils.java

License:Apache License

/**
 * Extract a date from a verbatim date, returning ranges specified to day.
 * //from   ww  w .j  av a  2 s .  com
 * @param verbatimEventDate a string containing a verbatim event date.
 * @param yearsBeforeSuspect the value for a year before which parsed years should be considered suspect.
 * @return  a map with result and resultState as keys
 * 
 * @deprecated
 * @see DateUtils#extractDateToDayFromVerbatimER(String, int) replacement method
 */
public static Map<String, String> extractDateToDayFromVerbatim(String verbatimEventDate,
        int yearsBeforeSuspect) {
    Map<String, String> result = extractDateFromVerbatim(verbatimEventDate, yearsBeforeSuspect);
    if (result.size() > 0 && result.get("resultState").equals("range")) {
        String dateRange = result.get("result");
        try {
            Interval parseDate = extractDateInterval(dateRange);
            logger.debug(parseDate);
            String resultDate = parseDate.getStart().toString("yyyy-MM-dd") + "/"
                    + parseDate.getEnd().toString("yyyy-MM-dd");
            result.put("result", resultDate);
        } catch (Exception e) {
            logger.debug(e.getMessage());
        }
    }
    return result;
}

From source file:org.filteredpush.qc.date.DateUtils.java

License:Apache License

/**
 * Identify whether an event date is consistent with its atomic parts.  
 * /*from   w w  w.  j  ava 2s.  co  m*/
 * @param eventDate  dwc:eventDate string to compare with atomic parts.
 * @param startDayOfYear  dwc:startDayOfYear for comparison with eventDate
 * @param endDayOfYear dwc:endDayOfYear for comparison with eventDate
 * @param year dwc:year for comparison with eventDate
 * @param month dwc:month for comparison with eventDate
 * @param day dwc:day for comparison with eventDate
 * 
 * @return true if consistent, or if eventDate is empty, or if all 
 *    atomic parts are empty, otherwise false.
 */
public static boolean isConsistent(String eventDate, String startDayOfYear, String endDayOfYear, String year,
        String month, String day) {
    if (isEmpty(eventDate) || (isEmpty(startDayOfYear) && isEmpty(endDayOfYear) && isEmpty(year)
            && isEmpty(month) && isEmpty(day))) {
        return true;
    }
    // TODO: Add support for eventTime
    boolean result = false;
    result = isConsistent(eventDate, year, month, day);
    logger.debug(result);
    if ((result || (!isEmpty(eventDate) && isEmpty(year) && isEmpty(month) && isEmpty(day)))
            && (!isEmpty(startDayOfYear) || !isEmpty(endDayOfYear))) {
        if (endDayOfYear == null || endDayOfYear.trim().length() == 0
                || startDayOfYear.trim().equals(endDayOfYear.trim())) {
            int startDayInt = -1;
            try {
                startDayInt = Integer.parseInt(startDayOfYear);
            } catch (NumberFormatException e) {
                logger.debug(e.getMessage());
                logger.debug(startDayOfYear + " is not an integer.");
                result = false;
            }
            if (DateUtils.extractDate(eventDate) != null
                    && DateUtils.extractDate(eventDate).getDayOfYear() == startDayInt) {
                result = true;
            } else {
                result = false;
            }
        } else {
            int startDayInt = -1;
            int endDayInt = -1;
            try {
                startDayInt = Integer.parseInt(startDayOfYear);
                endDayInt = Integer.parseInt(endDayOfYear);
            } catch (NumberFormatException e) {
                logger.debug(e.getMessage());
                result = false;
            }
            Interval eventDateInterval = DateUtils.extractDateInterval(eventDate);
            logger.debug(eventDateInterval);
            int endDayOfInterval = eventDateInterval.getEnd().getDayOfYear(); // midnight on the next day, so subtract 1 to get the same integer day.
            if (eventDateInterval.getStart().getDayOfYear() == startDayInt && endDayOfInterval == endDayInt) {
                result = true;
            } else {
                result = false;
            }
        }
    }
    return result;
}

From source file:org.filteredpush.qc.date.DateUtils.java

License:Apache License

/**
 * Test if an event date specifies a duration of one day or less.
 * //from  w  ww. j  a v a  2s.  co m
 * @param eventDate to test.
 * @return true if duration is one day or less.
 */
public static boolean specificToDay(String eventDate) {
    boolean result = false;
    if (!isEmpty(eventDate)) {
        Interval eventDateInterval = extractInterval(eventDate);
        logger.debug(eventDateInterval);
        logger.debug(eventDateInterval.toDuration());
        if (eventDateInterval.toDuration().getStandardDays() < 1l) {
            result = true;
        } else if (eventDateInterval.toDuration().getStandardDays() == 1l
                && eventDateInterval.getStart().getDayOfYear() == eventDateInterval.getEnd().getDayOfYear()) {
            result = true;
        }
    }
    return result;
}

From source file:org.filteredpush.qc.date.DateUtils.java

License:Apache License

/**
 * Given an event date (which may represent a date range), check to see if the 
 * eventDate contains a leap day.  Returns false if provided a null or invalid 
 * eventDate value.//from  www.j  a  v  a2 s .c o m
 * 
 * @param eventDate to check for a leap day
 * @return true if a leap day is present in the eventDate range, otherwise false.
 */
public static boolean includesLeapDay(String eventDate) {
    boolean result = false;
    if (!DateUtils.isEmpty(eventDate) && DateUtils.eventDateValid(eventDate)) {
        Interval interval = extractInterval(eventDate);
        Integer sYear = interval.getStart().getYear();
        Integer eYear = interval.getEnd().getYear();
        String startYear = Integer.toString(sYear).trim();
        String endYear = Integer.toString(eYear).trim();
        String leapDay = startYear + "-02-29";
        logger.debug(leapDay);
        if (DateUtils.eventDateValid(leapDay)) {
            if (interval.contains(DateUtils.extractInterval(leapDay))) {
                result = true;
            }
        }
        // Range spanning more than one year, check last year
        if (!endYear.equals(startYear)) {
            leapDay = endYear + "-02-29";
            logger.debug(leapDay);
            if (DateUtils.eventDateValid(leapDay)) {
                if (interval.contains(DateUtils.extractInterval(leapDay))) {
                    result = true;
                }
            }
        }
        // Ranges of more than two years, check intermediate years
        if (eYear > sYear + 1) {
            for (int testYear = sYear + 1; testYear < eYear; testYear++) {
                leapDay = Integer.toString(testYear).trim() + "-02-29";
                logger.debug(leapDay);
                if (DateUtils.eventDateValid(leapDay)) {
                    if (interval.contains(DateUtils.extractInterval(leapDay))) {
                        result = true;
                    }
                }
            }
        }
    }
    return result;
}

From source file:org.filteredpush.qc.date.DateUtils.java

License:Apache License

/**
 * Count the number of leap days present in an event date 
 * //  www  . j a  v a2s  . c om
 * @param eventDate to check for leap days
 * @return number of leap days present in eventDate, 0 if no leap days are present or
 *    if eventDate does not contain a date. 
 */
public static int countLeapDays(String eventDate) {
    int result = 0;
    if (!DateUtils.isEmpty(eventDate) && DateUtils.eventDateValid(eventDate)) {
        Interval interval = extractInterval(eventDate);
        Integer sYear = interval.getStart().getYear();
        Integer eYear = interval.getEnd().getYear();
        String startYear = Integer.toString(sYear).trim();
        String endYear = Integer.toString(eYear).trim();
        String leapDay = startYear + "-02-29";
        logger.debug(leapDay);
        if (DateUtils.eventDateValid(leapDay)) {
            if (interval.contains(DateUtils.extractInterval(leapDay))) {
                result = 1;
            }
        }
        // Range spanning more than one year, check last year
        if (!endYear.equals(startYear)) {
            leapDay = endYear + "-02-29";
            logger.debug(leapDay);
            if (DateUtils.eventDateValid(leapDay)) {
                if (interval.contains(DateUtils.extractInterval(leapDay))) {
                    result++;
                }
            }
        }
        // Ranges of more than two years, check intermediate years
        if (eYear > sYear + 1) {
            for (int testYear = sYear + 1; testYear < eYear; testYear++) {
                leapDay = Integer.toString(testYear).trim() + "-02-29";
                logger.debug(leapDay);
                if (DateUtils.eventDateValid(leapDay)) {
                    if (interval.contains(DateUtils.extractInterval(leapDay))) {
                        result++;
                    }
                }
            }
        }
    }
    return result;
}

From source file:org.filteredpush.qc.date.DwCEventDQ.java

License:Apache License

/**
 * Given a set of event terms, examine the content of eventDate, and if it is correctly formatted and
 * can be interpreted, fill in any empty of the following terms (year, month, day, startDayOfYear, endDayOfYear)
 * with appropriate values./*from   www  .  j a  va 2 s. c  o  m*/
 *
  *TG2-AMENDMENT_EVENT_FROM_EVENTDATE     710fe118-17e1-440f-b428-88ba3f547d6d
 *
 * @param eventDate to examine
 * @param year to check for emptyness
 * @param month to check for emptyness
 * @param day to check for emptyness
 * @param startDayOfYear to check for emptyness
 * @param endDayOfYear to check for emptyness
  * @return an EventDQAmmendment which may contain a proposed amendment for key dwc:day.
 */
@Provides(value = "urn:uuid:710fe118-17e1-440f-b428-88ba3f547d6d")
@Amendment(label = "AMENDMENT_EVENT_FROM_EVENTDATE", description = "One or more empty component terms of the dwc:Event class (dwc:year, dwc:month, dwc:day, dwc:startDayOfYear, dwc:endDayOfYear) have been filled in from a valid value in the term dwc:eventDate.")
@Specification(value = "One or more empty component terms of the dwc:Event class (dwc:year, dwc:month, dwc:day, dwc:startDayOfYear, dwc:endDayOfYear) have been filled in from a valid value in the term dwc:eventDate. The field dwc:eventDate is not EMPTY and contains a valid ISO 8601:2004(E).  Run this amendment after any other amendment which may affect dwc:eventDate.")
public static DQResponse<AmendmentValue> fillInEventFromEventDate(
        @Consulted(value = "dwc:eventDate") String eventDate, @ActedUpon(value = "dwc:year") String year,
        @ActedUpon(value = "dwc:month") String month, @ActedUpon(value = "dwc:day") String day,
        @ActedUpon(value = "dwc:startDayOfYear") String startDayOfYear,
        @ActedUpon(value = "dwc:endDayOfYear") String endDayOfYear) {
    DQResponse<AmendmentValue> result = new DQResponse<AmendmentValue>();
    if (DateUtils.isEmpty(eventDate)) {
        result.setResultState(ResultState.INTERNAL_PREREQUISITES_NOT_MET);
        result.addComment("No value for dwc:eventDate was provided, no data to fill in from.");
    } else {
        if (!DateUtils.eventDateValid(eventDate)) {
            result.setResultState(ResultState.INTERNAL_PREREQUISITES_NOT_MET);
            result.addComment("Provided value for dwc:eventDate [" + eventDate + "] could not be interpreted.");
        } else {
            boolean isRange = false;
            if (DateUtils.isRange(eventDate)) {
                isRange = true;
            }
            Interval interval = DateUtils.extractInterval(eventDate);
            if (interval == null) {
                result.setResultState(ResultState.INTERNAL_PREREQUISITES_NOT_MET);
                result.addComment("Provided value for dwc:eventDate [" + eventDate
                        + "] appears to be correctly formatted, but could not be interpreted as a valid date.");

            } else {
                Map<String, String> values = new HashMap<>();

                if (DateUtils.isEmpty(day)) {
                    String newDay = Integer.toString(interval.getStart().getDayOfMonth());
                    values.put("dwc:day", newDay);
                    result.setResultState(ResultState.FILLED_IN);
                    if (isRange) {
                        result.addComment(
                                "Added day [" + newDay + "] from start day of range [" + eventDate + "].");
                    } else {
                        result.addComment("Added day [" + newDay + "] from eventDate [" + eventDate + "].");
                    }
                }
                if (DateUtils.isEmpty(month)) {
                    String newMonth = Integer.toString(interval.getStart().getMonthOfYear());
                    values.put("dwc:month", newMonth);
                    result.setResultState(ResultState.FILLED_IN);
                    if (isRange) {
                        result.addComment("Added month [" + newMonth + "] from start month of eventDate ["
                                + eventDate + "].");
                    } else {
                        result.addComment("Added month [" + newMonth + "] from eventDate [" + eventDate + "].");
                    }
                }
                if (DateUtils.isEmpty(month)) {
                    String newMonth = Integer.toString(interval.getStart().getMonthOfYear());
                    values.put("dwc:month", newMonth);
                    result.setResultState(ResultState.FILLED_IN);
                    if (isRange) {
                        result.addComment("Added month [" + newMonth + "] from start month of eventDate ["
                                + eventDate + "].");
                    } else {
                        result.addComment("Added month [" + newMonth + "] from eventDate [" + eventDate + "].");
                    }
                }
                if (DateUtils.isEmpty(year)) {
                    String newYear = Integer.toString(interval.getStart().getYear());
                    values.put("dwc:year", newYear);
                    result.setResultState(ResultState.FILLED_IN);
                    if (isRange) {
                        result.addComment("Added year [" + newYear + "] from start month of eventDate ["
                                + eventDate + "].");
                    } else {
                        result.addComment("Added year [" + newYear + "] from eventDate [" + eventDate + "].");
                    }
                }

                if (DateUtils.isEmpty(startDayOfYear)) {
                    String newDay = Integer.toString(interval.getStart().getDayOfYear());
                    values.put("dwc:startDayOfYear", newDay);
                    result.setResultState(ResultState.FILLED_IN);
                    if (isRange) {
                        result.addComment("Added startDayOfYear [" + newDay + "] from start day of eventDate ["
                                + eventDate + "].");
                    } else {
                        result.addComment(
                                "Added startDayOfYear [" + newDay + "] from eventDate [" + eventDate + "].");
                    }
                }

                if (DateUtils.isEmpty(endDayOfYear)) {
                    String newDay = Integer.toString(interval.getEnd().getDayOfYear());
                    values.put("dwc:endDayOfYear", newDay);
                    result.setResultState(ResultState.FILLED_IN);
                    if (isRange) {
                        result.addComment("Added endDayOfYear [" + newDay + "] from end day of eventDate ["
                                + eventDate + "].");
                    } else {
                        result.addComment(
                                "Added endDayOfYear [" + newDay + "] from eventDate [" + eventDate + "].");
                    }
                }

                result.setValue(new AmendmentValue(values));
                // Time could also be populated, but we probably don't want to.  Here is a minimal implementation,
                // which illustrates some issues in implementation (using zulu time or not, dealing with time in ranges...)
                //if (DateUtils.isEmpty(eventTime)) {
                //   if (DateUtils.containsTime(eventDate)) {
                //      String newTime = DateUtils.extractZuluTime(eventDate);
                //      result.addResult("dwc:endDayOfYear", newTime );
                //      result.setResultState(ResultState.FILLED_IN);
                //       result.addComment("Added eventTime ["+ newTime +"] from eventDate ["+eventDate+"].");
                //   }
                //}
                if (!result.getResultState().equals(ResultState.FILLED_IN)) {
                    result.setResultState(ResultState.NO_CHANGE);
                    result.addComment("No changes proposed, all candidate fields to fill in contain values.");
                }
            } // end interval extraction
        } // end format validity check
    }
    return result;
}

From source file:org.filteredpush.qc.date.DwCEventDQ.java

License:Apache License

/**
 * Given an eventDate check to see if that event date falls entirely outside a range from a
 * specified lower bound (1700-01-01 by default) and the present.  
 * //from  w w  w  . ja va 2  s .  c  o  m
 * TODO: This may or may not be consistent with the standard test, current implementation here fails
 * only if the eventDate has no overlap with the lowerBound to the present, not if the eventDate has 
 * any overlap outside the lowerBound to the present.
 * TG2-VALIDATION_EVENTDATE_OUTOFRANGE ?  probably not
 * 
 * 
 * @param eventDate to check
 * @param lowerBound integer representing the year to use as the lower boundary, if null, then uses 1700
 * @param useLowerBound if false, no lower limit, otherwise uses supplied lower bound.
 * @return an DQValidationResponse object describing whether the provided value is in range.
 */
@Provides(value = "urn:uuid:bc8d1ffb-d074-4b4b-919c-f0c8fbe1a618") // new guid, probably not the test as specified 
@Validation(label = "VALIDATION_EVENTDATE_WHOLLYOUTOFRANGE", description = "The range of dwc:eventDate does not fall entirely into the future and optionally does not fall entirely before a date designated when the test is run")
@Specification(value = "The range of dwc:eventDate is not entirely the future and optionally does not entirely fall before a date designated when the test is run The field dwc:eventDate is not EMPTY.")
public static DQResponse<ComplianceValue> isEventDateInRange(
        @ActedUpon(value = "dwc:eventDate") String eventDate,
        @Parameter(name = "whollyOutOfRangeLowerBound") Integer lowerBound,
        @Parameter(name = "whollyOutOfRangeUseLowerBound") Boolean useLowerBound) {
    DQResponse<ComplianceValue> result = new DQResponse<ComplianceValue>();
    // TODO: Implementation may be too tightly bound to year, may need to extract first/last day for finer granularity test
    if (lowerBound == null) {
        lowerBound = 1700;
    }
    if (useLowerBound == null) {
        useLowerBound = true;
    }
    Integer upperBound = LocalDateTime.now().getYear();
    if (DateUtils.isEmpty(eventDate)) {
        result.addComment("No value provided for dwc:eventDate.");
        result.setResultState(ResultState.INTERNAL_PREREQUISITES_NOT_MET);
    } else {
        if (!DateUtils.eventDateValid(eventDate)) {
            result.addComment(
                    "Value provided for dwc:eventDate [" + eventDate + "] not recognized as a valid date.");
            result.setResultState(ResultState.INTERNAL_PREREQUISITES_NOT_MET);
        } else {
            int startYear = 0;
            Interval interval = DateUtils.extractInterval(eventDate);
            if (DateUtils.isRange(eventDate)) {
                int endYear = interval.getEnd().getYear();
                startYear = interval.getStart().getYear();
                if (useLowerBound) {
                    if (endYear < lowerBound || startYear > upperBound) {
                        result.setValue(ComplianceValue.NOT_COMPLIANT);
                        result.addComment("Provided value for dwc:eventDate '" + eventDate
                                + "' is not a range spanning part of the range " + lowerBound.toString()
                                + " to " + upperBound.toString() + " (current year).");
                    } else {
                        result.setValue(ComplianceValue.COMPLIANT);
                        result.addComment("Provided value for dwc:eventDate '" + eventDate
                                + "' is a range spanning at least part of " + lowerBound.toString() + " to "
                                + upperBound.toString() + " (current year).");
                    }
                } else {
                    if (startYear > upperBound) {
                        result.setValue(ComplianceValue.NOT_COMPLIANT);
                        result.addComment("Provided value for dwc:eventDate '" + eventDate
                                + "' is not a range spanning part of the range " + lowerBound.toString()
                                + " to " + upperBound.toString() + " (current year).");
                    } else {
                        result.setValue(ComplianceValue.COMPLIANT);
                        result.addComment("Provided value for dwc:eventDate '" + eventDate
                                + "' is a range spanning at least part of " + lowerBound.toString() + " to "
                                + upperBound.toString() + " (current year).");
                    }
                }
            } else {
                startYear = interval.getStart().getYear();
                if (useLowerBound) {
                    if (startYear < lowerBound || startYear > upperBound) {
                        result.setValue(ComplianceValue.NOT_COMPLIANT);
                        result.addComment("Provided value for dwc:eventDate '" + eventDate
                                + "' does not have a year in the range " + lowerBound.toString() + " to "
                                + upperBound.toString() + " (current year).");
                    } else {
                        result.setValue(ComplianceValue.COMPLIANT);
                        result.addComment("Provided value for dwc:eventDate '" + eventDate
                                + "' does not have a year in the range " + lowerBound.toString() + " to "
                                + upperBound.toString() + " (current year).");
                    }
                } else {
                    if (startYear > upperBound) {
                        result.setValue(ComplianceValue.NOT_COMPLIANT);
                        result.addComment("Provided value for dwc:eventDate '" + eventDate + "' is not after  "
                                + upperBound.toString() + " (current year).");
                    } else {
                        result.setValue(ComplianceValue.COMPLIANT);
                        result.addComment("Provided value for dwc:eventDate '" + eventDate + "' is after "
                                + upperBound.toString() + " (current year).");
                    }
                }
            }
            result.setResultState(ResultState.RUN_HAS_RESULT);
        }
    }
    return result;
}

From source file:org.filteredpush.qc.date.DwCEventDQ.java

License:Apache License

/**
 * Given an eventDate check to see if that event date crosses outside a range from a
 * specified lower bound (1700-01-01 by default) and the present.  
 * /*w  ww  .j  av  a  2 s. co m*/
 * TODO: This may or may not be consistent with the standard test
 * TG2-VALIDATION_EVENTDATE_OUTOFRANGE 
 * 
 * 
 * @param eventDate to check
 * @param lowerBound integer representing the year to use as the lower boundary, if null, then uses 1700
 * @param useLowerBound if false, no lower limit, otherwise uses supplied lower bound.
 * @return an DQValidationResponse object describing whether the provided value is in range.
 */
@Provides(value = "urn:uuid:3cff4dc4-72e9-4abe-9bf3-8a30f1618432")
@Validation(label = "VALIDATION_EVENTDATE_EXTENDSOUTOFRANGE", description = "The range of dwc:eventDate does not extend into the future and optionally does not extend before a date designated when the test is run")
@Specification(value = "The range of dwc:eventDate does not extend into the future and optionally does not extend before a date designated when the test is run The field dwc:eventDate is not EMPTY.")
public static DQResponse<ComplianceValue> isEventDateAtAllInRange(
        @ActedUpon(value = "dwc:eventDate") String eventDate,
        @Parameter(name = "extendsOutOfRangeLowerBound") Integer lowerBound,
        @Parameter(name = "extendsOutOfRangeUseLowerBound") Boolean useLowerBound) {
    DQResponse<ComplianceValue> result = new DQResponse<ComplianceValue>();
    // TODO: Implementation may be too tightly bound to year, may need to extract first/last day for finer granularity test
    if (lowerBound == null) {
        lowerBound = 1700;
    }
    if (useLowerBound == null) {
        useLowerBound = true;
    }
    Integer upperBound = LocalDateTime.now().getYear();
    if (DateUtils.isEmpty(eventDate)) {
        result.addComment("No value provided for dwc:eventDate.");
        result.setResultState(ResultState.INTERNAL_PREREQUISITES_NOT_MET);
    } else {
        if (!DateUtils.eventDateValid(eventDate)) {
            result.addComment(
                    "Value provided for dwc:eventDate [" + eventDate + "] not recognized as a valid date.");
            result.setResultState(ResultState.INTERNAL_PREREQUISITES_NOT_MET);
        } else {
            int startYear = 0;
            Interval interval = DateUtils.extractInterval(eventDate);
            if (DateUtils.isRange(eventDate)) {
                int endYear = interval.getEnd().getYear();
                startYear = interval.getStart().getYear();
                if (endYear > upperBound) {
                    result.setValue(ComplianceValue.NOT_COMPLIANT);
                    result.addComment("Provided value for dwc:eventDate '" + eventDate
                            + "' extends outside the range " + lowerBound.toString() + " to "
                            + upperBound.toString() + " (current year).");
                } else {
                    if (useLowerBound) {
                        if (startYear < lowerBound) {
                            result.setValue(ComplianceValue.NOT_COMPLIANT);
                            result.addComment("Provided value for dwc:eventDate '" + eventDate
                                    + "' extends outside the range " + lowerBound.toString() + " to "
                                    + upperBound.toString() + " (current year).");
                        } else {
                            result.setValue(ComplianceValue.COMPLIANT);
                            result.addComment("Provided value for dwc:eventDate '" + eventDate
                                    + "' is a range spanning at least part of " + lowerBound.toString() + " to "
                                    + upperBound.toString() + " (current year).");
                        }
                    } else {
                        result.setValue(ComplianceValue.COMPLIANT);
                        result.addComment("Provided value for dwc:eventDate '" + eventDate
                                + "' is a range spanning at least part of " + lowerBound.toString() + " to "
                                + upperBound.toString() + " (current year).");
                    }
                }
            } else {
                startYear = interval.getStart().getYear();
                if (useLowerBound) {
                    if (startYear < lowerBound || startYear > upperBound) {
                        result.setValue(ComplianceValue.NOT_COMPLIANT);
                        result.addComment("Provided value for dwc:eventDate '" + eventDate
                                + "' does not have a year in the range " + lowerBound.toString() + " to "
                                + upperBound.toString() + " (current year).");
                    } else {
                        result.setValue(ComplianceValue.COMPLIANT);
                        result.addComment("Provided value for dwc:eventDate '" + eventDate
                                + "' does not have a year in the range " + lowerBound.toString() + " to "
                                + upperBound.toString() + " (current year).");
                    }
                } else {
                    if (startYear > upperBound) {
                        result.setValue(ComplianceValue.NOT_COMPLIANT);
                        result.addComment("Provided value for dwc:eventDate '" + eventDate + "' is not after  "
                                + upperBound.toString() + " (current year).");
                    } else {
                        result.setValue(ComplianceValue.COMPLIANT);
                        result.addComment("Provided value for dwc:eventDate '" + eventDate + "' is after "
                                + upperBound.toString() + " (current year).");
                    }
                }
            }
            result.setResultState(ResultState.RUN_HAS_RESULT);
        }
    }
    return result;
}

From source file:org.forgerock.openidm.util.DateUtil.java

License:CDDL license

/**
 * Returns a {@link DateTime} object representing the end date of the supplied interval.
 * /*from  ww  w.ja  va  2  s  .com*/
 * @param intervalString a {@link String} object representing an ISO 8601 time interval.
 * @return a {@link DateTime} object representing the end date of the supplied interval.
 * @throws IllegalArgumentException if an error occurs while parsing the intervalString.
 */
public DateTime getEndOfInterval(String intervalString) throws IllegalArgumentException {
    Interval interval = Interval.parse(intervalString);
    DateTime result = interval.getEnd();
    return result;
}

From source file:org.jadira.usertype.dateandtime.joda.PersistentInterval.java

License:Apache License

@Override
protected Object[] toConvertedColumns(Interval value) {

    return new Object[] { value.getStart(), value.getEnd() };
}