Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  * Copyright (c) 2014, Francis Galiegue (fgaliegue@gmail.com)
  *
  * This software is dual-licensed under:
  *
  * - the Lesser General Public License (LGPL) version 3.0 or, at your option, any
  *   later version;
  * - the Apache Software License (ASL) version 2.0.
  *
 * The text of both licenses is available under the src/resources/ directory of
 * this project (under the names LGPL-3.0.txt and ASL-2.0.txt respectively).
 *
 * Direct link to the sources:
 *
 * - LGPL 3.0: https://www.gnu.org/licenses/lgpl-3.0.txt
 * - ASL 2.0: http://www.apache.org/licenses/LICENSE-2.0.txt
 */
package com.github.fge.jsonschema.format.common;
import static org.joda.time.DateTimeFieldType.*;

Validator for the date-time format attribute
public final class DateTimeAttribute
    extends AbstractFormatAttribute
    private static final List<StringFORMATS = ImmutableList.of(
        "yyyy-MM-dd'T'HH:mm:ssZ""yyyy-MM-dd'T'HH:mm:ss.SSSZ"
    );
    private static final DateTimeFormatter FORMATTER;
    static {
        final DateTimeParser msParser = new DateTimeFormatterBuilder()
            .appendLiteral('.').appendDecimal(millisOfSecond(), 1, 3)
            .toParser();
        DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
        builder = builder.appendFixedDecimal(year(), 4)
            .appendLiteral('-')
            .appendFixedDecimal(monthOfYear(), 2)
            .appendLiteral('-')
            .appendFixedDecimal(dayOfMonth(), 2)
            .appendLiteral('T')
            .appendFixedDecimal(hourOfDay(), 2)
            .appendLiteral(':')
            .appendFixedDecimal(minuteOfHour(), 2)
            .appendLiteral(':')
            .appendFixedDecimal(secondOfMinute(), 2)
            .appendOptional(msParser)
            .appendTimeZoneOffset("Z"false, 2, 2);
         = builder.toFormatter();
    }
    private static final FormatAttribute INSTANCE = new DateTimeAttribute();
    public static FormatAttribute getInstance()
    {
        return ;
    }
    private DateTimeAttribute()
    {
        super("date-time".);
    }
    @Override
    public void validate(final ProcessingReport report,
        final MessageBundle bundlefinal FullData data)
        throws ProcessingException
    {
        final String value = data.getInstance().getNode().textValue();
        try {
            .parseDateTime(value);
        } catch (IllegalArgumentException ignored) {
            report.error(newMsg(databundle"err.format.invalidDate")
                .putArgument("value"value).putArgument("expected"));
        }
    }
New to GrepCode? Check out our FAQ X