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 this file and of both licenses is available at the root of this
 * project or, if you have the jar distribution, in directory META-INF/, 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.draftv3;
Validator for the utc-millisec format attribute.

Note that there is no restriction on the number value at all. However, this attributes perform extra checks and warns (ie, does not report an error) in the following situations:

  • the number is negative;
  • the number, divided by 1000, is greater than 2^31 - 1.
public final class UTCMillisecAttribute
    extends AbstractFormatAttribute
{
    
The maximum bit length of a Unix timestamp value
    private static final int EPOCH_BITLENGTH = 31;

    
    private static final BigInteger ONE_THOUSAND = new BigInteger("1000");
    private static final FormatAttribute INSTANCE = new UTCMillisecAttribute();
    public static FormatAttribute getInstance()
    {
        return ;
    }
    private UTCMillisecAttribute()
    {
        super("utc-millisec"..);
    }
    @Override
    public void validate(final ProcessingReport report,
        final MessageBundle bundlefinal FullData data)
        throws ProcessingException
    {
        final JsonNode instance = data.getInstance().getNode();
        BigInteger epoch = instance.bigIntegerValue();
        if (epoch.signum() == -1) {
            report.warn(newMsg(databundle"warn.format.epoch.negative")
                .putArgument("value"instance));
            return;
        }
        epoch = epoch.divide();
        if (epoch.bitLength() > )
            report.warn(newMsg(databundle"warn.format.epoch.overflow")
                .putArgument("value"instance));
    }
New to GrepCode? Check out our FAQ X