package org.gcube.accounting.datamodel.validations.validators; import java.io.Serializable; import java.net.URI; import org.gcube.accounting.datamodel.UsageRecord; import org.gcube.accounting.datamodel.decorators.FieldAction; import org.gcube.accounting.exception.InvalidValueException; public class ValidURIValidator implements FieldAction { private static final String ERROR = "Not Valid URI"; /** * {@inheritDoc} */ @Override public Comparable validate(String key, Comparable value, UsageRecord usageRecord) throws InvalidValueException { try { if(value instanceof URI){ return value; } if(value instanceof String){ return new URI((String) value); } }catch (Exception e) { throw new InvalidValueException(ERROR, e); } throw new InvalidValueException(ERROR); } }