package org.gcube.accounting.datamodel.validations.validators; import java.io.Serializable; import java.util.Map; import org.gcube.accounting.datamodel.validations.FieldValidator; import org.gcube.accounting.exception.InvalidValueException; public class NotEmptyValidator implements FieldValidator{ private static final String ERROR = "Is Empty"; protected boolean isValid(Serializable toValidate) { if (toValidate == null) return false; if (toValidate.getClass().isArray() ){ return ((Object[])toValidate).length>0; }else if ( toValidate instanceof Iterable){ return ((Iterable) toValidate).iterator().hasNext(); } else if (toValidate instanceof Map){ return ((Map) toValidate).size()>0; } else if (toValidate instanceof String ){ return !((String)toValidate).isEmpty(); } else return true; } @Override public Serializable validate(Serializable toValidate) throws InvalidValueException { try{ if(isValid(toValidate)){ return toValidate; } }catch(Exception e){ throw new InvalidValueException(ERROR, e.getCause()); } throw new InvalidValueException(ERROR); } }