com.brightsparklabs.asanti.validator.builtin.IntegerValidator Maven / Gradle / Ivy
/*
* Maintained by brightSPARK Labs.
* www.brightsparklabs.com
*
* Refer to LICENSE at repository root for license details.
*/
package com.brightsparklabs.asanti.validator.builtin;
import com.brightsparklabs.asanti.schema.AsnBuiltinType;
import com.brightsparklabs.asanti.validator.FailureType;
import com.brightsparklabs.asanti.validator.failure.ByteValidationFailure;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Sets;
import java.util.Set;
/**
* Validator for data of type {@link AsnBuiltinType#Integer}
*
* @author brightSPARK Labs
*/
public class IntegerValidator extends PrimitiveBuiltinTypeValidator {
// -------------------------------------------------------------------------
// INSTANCE VARIABLES
// -------------------------------------------------------------------------
/** singleton instance */
private static IntegerValidator instance;
// -------------------------------------------------------------------------
// CONSTRUCTION
// -------------------------------------------------------------------------
/**
* Default constructor.
*
* This is private, use {@link #getInstance()} to obtain an instance
*/
private IntegerValidator() {}
/**
* Returns a singleton instance of this class
*
* @return a singleton instance of this class
*/
public static IntegerValidator getInstance() {
if (instance == null) {
instance = new IntegerValidator();
}
return instance;
}
// -------------------------------------------------------------------------
// IMPLEMENTATION: PrimitiveBuiltinTypeValidator
// -------------------------------------------------------------------------
@Override
protected ImmutableSet validateNonNullBytes(final byte[] bytes) {
final Set failures = Sets.newHashSet();
if (bytes.length == 0) {
final String error = String.format(EMPTY_BYTE_ARRAY_VALIDATION_ERROR, "INTEGER");
final ByteValidationFailure failure =
new ByteValidationFailure(
bytes.length, FailureType.DataIncorrectlyFormatted, error);
failures.add(failure);
}
return ImmutableSet.copyOf(failures);
}
}