package org.gcube.accounting.datamodel.validators; import java.io.Serializable; import org.gcube.accounting.datamodel.UsageRecord.OperationResult; import org.gcube.common.validator.annotations.FieldValidator; public class ValidOperationResultValidator implements FieldValidator{ public Class annotation() { return ValidOperationResult.class; } public boolean isValid(Object toValidate) { if(toValidate instanceof OperationResult){ return true; } if(toValidate instanceof String || toValidate instanceof Serializable){ try { OperationResult operationResult = OperationResult.valueOf((String) toValidate); if(operationResult !=null){ return true; } }catch(Exception e){} } return false; } public String getErrorSuffix() { return String.format("not instace of %s", OperationResult.class.getSimpleName()); } }