Example usage for org.joda.time MonthDay parse

List of usage examples for org.joda.time MonthDay parse

Introduction

In this page you can find the example usage for org.joda.time MonthDay parse.

Prototype

public static MonthDay parse(String str, DateTimeFormatter formatter) 

Source Link

Document

Parses a MonthDay from the specified string using a formatter.

Usage

From source file:com.gst.infrastructure.core.serialization.JsonParserHelper.java

License:Apache License

public MonthDay extractMonthDayNamed(final String parameterName, final JsonObject element,
        final String dateFormat, final Locale clientApplicationLocale) {
    MonthDay value = null;/* w  w w.  j  a v a  2 s  .c  o  m*/
    if (element.isJsonObject()) {
        final JsonObject object = element.getAsJsonObject();

        if (object.has(parameterName) && object.get(parameterName).isJsonPrimitive()) {

            final JsonPrimitive primitive = object.get(parameterName).getAsJsonPrimitive();
            final String valueAsString = primitive.getAsString();
            if (StringUtils.isNotBlank(valueAsString)) {
                try {
                    final DateTimeFormatter formatter = DateTimeFormat.forPattern(dateFormat)
                            .withLocale(clientApplicationLocale);
                    value = MonthDay.parse(valueAsString.toLowerCase(clientApplicationLocale), formatter);
                } catch (final IllegalArgumentException e) {
                    final List<ApiParameterError> dataValidationErrors = new ArrayList<>();
                    final ApiParameterError error = ApiParameterError.parameterError(
                            "validation.msg.invalid.month.day",
                            "The parameter " + parameterName + " is invalid based on the monthDayFormat: '"
                                    + dateFormat + "' and locale: '" + clientApplicationLocale + "' provided:",
                            parameterName, valueAsString, dateFormat);
                    dataValidationErrors.add(error);

                    throw new PlatformApiDataValidationException("validation.msg.validation.errors.exist",
                            "Validation errors exist.", dataValidationErrors);
                }
            }
        }

    }
    return value;
}