From 942e1451b785b50f43965f82fff14d50228857d8 Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Fri, 5 Jun 2015 09:43:53 +0000 Subject: [PATCH] refs #200: Create accouting-lib library https://support.d4science.org/issues/200 Implementing library git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/accounting/accounting-lib@115235 82a268e6-3cf1-43bd-a215-b396298e98cf --- pom.xml | 11 +------ .../accounting/datamodel/RawUsageRecord.java | 12 +++---- .../aggregated/StorageStatusUsageRecord.java | 6 ++-- .../datamodel/annotations/NotEmpty.java | 15 +++++++++ .../NotEmptyIfNotNull.java | 6 ++-- .../datamodel/annotations/NotNull.java | 15 +++++++++ .../{validators => annotations}/ValidIP.java | 4 +-- .../ValidInteger.java | 4 +-- .../ValidLong.java | 4 +-- .../ValidOperationResult.java | 4 +-- .../annotations/ValidityChecker.java | 25 +++++++++++++++ .../implementations/JobUsageRecord.java | 6 ++-- .../implementations/PortletUsageRecord.java | 2 +- .../implementations/ServiceUsageRecord.java | 6 ++-- .../StorageUsageUsageRecord.java | 10 +++--- .../implementations/TaskUsageRecord.java | 6 ++-- .../datamodel/validators/FieldValidator.java | 20 ++++++++++++ .../NotEmptyIfNotNullValidator.java | 13 ++++---- .../validators/NotEmptyValidator.java | 31 +++++++++++++++++++ .../validators/NotNullValidator.java | 22 +++++++++++++ .../validators/ValidIPValidator.java | 8 ++--- .../validators/ValidIntegerValidator.java | 7 +++-- .../validators/ValidLongValidator.java | 7 +++-- .../ValidOperationResultValidator.java | 18 +++++------ .../InternallyReservedKeywordException.java | 25 +++++++++++++++ .../exception/InvalidValueException.java | 3 ++ .../accounting/persistence/Persistence.java | 24 +++++++++++--- 27 files changed, 241 insertions(+), 73 deletions(-) create mode 100644 src/main/java/org/gcube/accounting/datamodel/annotations/NotEmpty.java rename src/main/java/org/gcube/accounting/datamodel/{validators => annotations}/NotEmptyIfNotNull.java (71%) create mode 100644 src/main/java/org/gcube/accounting/datamodel/annotations/NotNull.java rename src/main/java/org/gcube/accounting/datamodel/{validators => annotations}/ValidIP.java (72%) rename src/main/java/org/gcube/accounting/datamodel/{validators => annotations}/ValidInteger.java (71%) rename src/main/java/org/gcube/accounting/datamodel/{validators => annotations}/ValidLong.java (72%) rename src/main/java/org/gcube/accounting/datamodel/{validators => annotations}/ValidOperationResult.java (71%) create mode 100644 src/main/java/org/gcube/accounting/datamodel/annotations/ValidityChecker.java create mode 100644 src/main/java/org/gcube/accounting/datamodel/validators/FieldValidator.java create mode 100644 src/main/java/org/gcube/accounting/datamodel/validators/NotEmptyValidator.java create mode 100644 src/main/java/org/gcube/accounting/datamodel/validators/NotNullValidator.java create mode 100644 src/main/java/org/gcube/accounting/exception/InternallyReservedKeywordException.java diff --git a/pom.xml b/pom.xml index cd5b3ab..0c063f6 100644 --- a/pom.xml +++ b/pom.xml @@ -45,16 +45,7 @@ slf4j-api provided - - org.gcube.core - common-validator - provided - - - org.gcube.core - common-smartgears - - + org.ektorp diff --git a/src/main/java/org/gcube/accounting/datamodel/RawUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/RawUsageRecord.java index e6af6cc..ebba25e 100644 --- a/src/main/java/org/gcube/accounting/datamodel/RawUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/RawUsageRecord.java @@ -17,13 +17,13 @@ import java.util.Map.Entry; import java.util.Set; import java.util.UUID; -import org.gcube.accounting.datamodel.validators.NotEmptyIfNotNull; -import org.gcube.accounting.datamodel.validators.ValidLong; -import org.gcube.accounting.datamodel.validators.ValidOperationResult; +import org.gcube.accounting.datamodel.annotations.NotEmpty; +import org.gcube.accounting.datamodel.annotations.NotEmptyIfNotNull; +import org.gcube.accounting.datamodel.annotations.ValidLong; +import org.gcube.accounting.datamodel.annotations.ValidOperationResult; +import org.gcube.accounting.datamodel.annotations.ValidityChecker; +import org.gcube.accounting.datamodel.validators.FieldValidator; import org.gcube.accounting.exception.InvalidValueException; -import org.gcube.common.validator.annotations.FieldValidator; -import org.gcube.common.validator.annotations.NotEmpty; -import org.gcube.common.validator.annotations.ValidityChecker; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/org/gcube/accounting/datamodel/aggregated/StorageStatusUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/aggregated/StorageStatusUsageRecord.java index 723b7cb..0ee0607 100644 --- a/src/main/java/org/gcube/accounting/datamodel/aggregated/StorageStatusUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/aggregated/StorageStatusUsageRecord.java @@ -4,10 +4,10 @@ package org.gcube.accounting.datamodel.aggregated; import org.gcube.accounting.datamodel.RawUsageRecord; -import org.gcube.accounting.datamodel.validators.ValidInteger; -import org.gcube.accounting.datamodel.validators.ValidLong; +import org.gcube.accounting.datamodel.annotations.NotEmpty; +import org.gcube.accounting.datamodel.annotations.ValidInteger; +import org.gcube.accounting.datamodel.annotations.ValidLong; import org.gcube.accounting.exception.InvalidValueException; -import org.gcube.common.validator.annotations.NotEmpty; /** * @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/ diff --git a/src/main/java/org/gcube/accounting/datamodel/annotations/NotEmpty.java b/src/main/java/org/gcube/accounting/datamodel/annotations/NotEmpty.java new file mode 100644 index 0000000..f9abdcb --- /dev/null +++ b/src/main/java/org/gcube/accounting/datamodel/annotations/NotEmpty.java @@ -0,0 +1,15 @@ +package org.gcube.accounting.datamodel.annotations; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import org.gcube.accounting.datamodel.validators.NotEmptyValidator; + +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +@ValidityChecker(managed=NotEmptyValidator.class) +public @interface NotEmpty { + +} diff --git a/src/main/java/org/gcube/accounting/datamodel/validators/NotEmptyIfNotNull.java b/src/main/java/org/gcube/accounting/datamodel/annotations/NotEmptyIfNotNull.java similarity index 71% rename from src/main/java/org/gcube/accounting/datamodel/validators/NotEmptyIfNotNull.java rename to src/main/java/org/gcube/accounting/datamodel/annotations/NotEmptyIfNotNull.java index 74228a9..539602a 100644 --- a/src/main/java/org/gcube/accounting/datamodel/validators/NotEmptyIfNotNull.java +++ b/src/main/java/org/gcube/accounting/datamodel/annotations/NotEmptyIfNotNull.java @@ -1,15 +1,15 @@ -package org.gcube.accounting.datamodel.validators; +package org.gcube.accounting.datamodel.annotations; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import org.gcube.common.validator.annotations.ValidityChecker; +import org.gcube.accounting.datamodel.validators.NotEmptyIfNotNullValidator; @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) @ValidityChecker(managed=NotEmptyIfNotNullValidator.class) public @interface NotEmptyIfNotNull { - + } diff --git a/src/main/java/org/gcube/accounting/datamodel/annotations/NotNull.java b/src/main/java/org/gcube/accounting/datamodel/annotations/NotNull.java new file mode 100644 index 0000000..f0e506a --- /dev/null +++ b/src/main/java/org/gcube/accounting/datamodel/annotations/NotNull.java @@ -0,0 +1,15 @@ +package org.gcube.accounting.datamodel.annotations; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import org.gcube.accounting.datamodel.validators.NotNullValidator; + +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +@ValidityChecker(managed=NotNullValidator.class) +public @interface NotNull { + +} diff --git a/src/main/java/org/gcube/accounting/datamodel/validators/ValidIP.java b/src/main/java/org/gcube/accounting/datamodel/annotations/ValidIP.java similarity index 72% rename from src/main/java/org/gcube/accounting/datamodel/validators/ValidIP.java rename to src/main/java/org/gcube/accounting/datamodel/annotations/ValidIP.java index abe05de..dceac3e 100644 --- a/src/main/java/org/gcube/accounting/datamodel/validators/ValidIP.java +++ b/src/main/java/org/gcube/accounting/datamodel/annotations/ValidIP.java @@ -1,11 +1,11 @@ -package org.gcube.accounting.datamodel.validators; +package org.gcube.accounting.datamodel.annotations; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import org.gcube.common.validator.annotations.ValidityChecker; +import org.gcube.accounting.datamodel.validators.ValidIPValidator; @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) diff --git a/src/main/java/org/gcube/accounting/datamodel/validators/ValidInteger.java b/src/main/java/org/gcube/accounting/datamodel/annotations/ValidInteger.java similarity index 71% rename from src/main/java/org/gcube/accounting/datamodel/validators/ValidInteger.java rename to src/main/java/org/gcube/accounting/datamodel/annotations/ValidInteger.java index 1673979..02bdb56 100644 --- a/src/main/java/org/gcube/accounting/datamodel/validators/ValidInteger.java +++ b/src/main/java/org/gcube/accounting/datamodel/annotations/ValidInteger.java @@ -1,11 +1,11 @@ -package org.gcube.accounting.datamodel.validators; +package org.gcube.accounting.datamodel.annotations; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import org.gcube.common.validator.annotations.ValidityChecker; +import org.gcube.accounting.datamodel.validators.ValidIntegerValidator; @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) diff --git a/src/main/java/org/gcube/accounting/datamodel/validators/ValidLong.java b/src/main/java/org/gcube/accounting/datamodel/annotations/ValidLong.java similarity index 72% rename from src/main/java/org/gcube/accounting/datamodel/validators/ValidLong.java rename to src/main/java/org/gcube/accounting/datamodel/annotations/ValidLong.java index 2c0fe00..5d21852 100644 --- a/src/main/java/org/gcube/accounting/datamodel/validators/ValidLong.java +++ b/src/main/java/org/gcube/accounting/datamodel/annotations/ValidLong.java @@ -1,11 +1,11 @@ -package org.gcube.accounting.datamodel.validators; +package org.gcube.accounting.datamodel.annotations; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import org.gcube.common.validator.annotations.ValidityChecker; +import org.gcube.accounting.datamodel.validators.ValidLongValidator; @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) diff --git a/src/main/java/org/gcube/accounting/datamodel/validators/ValidOperationResult.java b/src/main/java/org/gcube/accounting/datamodel/annotations/ValidOperationResult.java similarity index 71% rename from src/main/java/org/gcube/accounting/datamodel/validators/ValidOperationResult.java rename to src/main/java/org/gcube/accounting/datamodel/annotations/ValidOperationResult.java index 0d43f23..e9b7fca 100644 --- a/src/main/java/org/gcube/accounting/datamodel/validators/ValidOperationResult.java +++ b/src/main/java/org/gcube/accounting/datamodel/annotations/ValidOperationResult.java @@ -1,11 +1,11 @@ -package org.gcube.accounting.datamodel.validators; +package org.gcube.accounting.datamodel.annotations; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import org.gcube.common.validator.annotations.ValidityChecker; +import org.gcube.accounting.datamodel.validators.ValidOperationResultValidator; @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) diff --git a/src/main/java/org/gcube/accounting/datamodel/annotations/ValidityChecker.java b/src/main/java/org/gcube/accounting/datamodel/annotations/ValidityChecker.java new file mode 100644 index 0000000..3319e2d --- /dev/null +++ b/src/main/java/org/gcube/accounting/datamodel/annotations/ValidityChecker.java @@ -0,0 +1,25 @@ +/** + * + */ +package org.gcube.accounting.datamodel.annotations; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Inherited; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import org.gcube.accounting.datamodel.validators.FieldValidator; + +/** + * @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/ + * + */ +@Target(ElementType.ANNOTATION_TYPE) +@Retention(RetentionPolicy.RUNTIME) +@Inherited +public @interface ValidityChecker { + + Class> managed(); +} + diff --git a/src/main/java/org/gcube/accounting/datamodel/implementations/JobUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/implementations/JobUsageRecord.java index 5781d3c..b480807 100644 --- a/src/main/java/org/gcube/accounting/datamodel/implementations/JobUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/implementations/JobUsageRecord.java @@ -6,10 +6,10 @@ package org.gcube.accounting.datamodel.implementations; import java.util.Calendar; import org.gcube.accounting.datamodel.RawUsageRecord; -import org.gcube.accounting.datamodel.validators.ValidInteger; -import org.gcube.accounting.datamodel.validators.ValidLong; +import org.gcube.accounting.datamodel.annotations.NotEmpty; +import org.gcube.accounting.datamodel.annotations.ValidInteger; +import org.gcube.accounting.datamodel.annotations.ValidLong; import org.gcube.accounting.exception.InvalidValueException; -import org.gcube.common.validator.annotations.NotEmpty; /** * @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/ diff --git a/src/main/java/org/gcube/accounting/datamodel/implementations/PortletUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/implementations/PortletUsageRecord.java index 6bc89f4..d19e927 100644 --- a/src/main/java/org/gcube/accounting/datamodel/implementations/PortletUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/implementations/PortletUsageRecord.java @@ -4,8 +4,8 @@ package org.gcube.accounting.datamodel.implementations; import org.gcube.accounting.datamodel.RawUsageRecord; +import org.gcube.accounting.datamodel.annotations.NotEmpty; import org.gcube.accounting.exception.InvalidValueException; -import org.gcube.common.validator.annotations.NotEmpty; /** * @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/ diff --git a/src/main/java/org/gcube/accounting/datamodel/implementations/ServiceUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/implementations/ServiceUsageRecord.java index 6d0f5e7..17d2fff 100644 --- a/src/main/java/org/gcube/accounting/datamodel/implementations/ServiceUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/implementations/ServiceUsageRecord.java @@ -4,10 +4,10 @@ package org.gcube.accounting.datamodel.implementations; import org.gcube.accounting.datamodel.RawUsageRecord; -import org.gcube.accounting.datamodel.validators.ValidIP; -import org.gcube.accounting.datamodel.validators.ValidInteger; +import org.gcube.accounting.datamodel.annotations.NotEmpty; +import org.gcube.accounting.datamodel.annotations.ValidIP; +import org.gcube.accounting.datamodel.annotations.ValidInteger; import org.gcube.accounting.exception.InvalidValueException; -import org.gcube.common.validator.annotations.NotEmpty; /** * @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/ diff --git a/src/main/java/org/gcube/accounting/datamodel/implementations/StorageUsageUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/implementations/StorageUsageUsageRecord.java index 9655987..2f2769a 100644 --- a/src/main/java/org/gcube/accounting/datamodel/implementations/StorageUsageUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/implementations/StorageUsageUsageRecord.java @@ -4,12 +4,12 @@ package org.gcube.accounting.datamodel.implementations; import org.gcube.accounting.datamodel.aggregated.StorageStatusUsageRecord; -import org.gcube.accounting.datamodel.validators.NotEmptyIfNotNull; -import org.gcube.accounting.datamodel.validators.ValidIP; -import org.gcube.accounting.datamodel.validators.ValidInteger; -import org.gcube.accounting.datamodel.validators.ValidLong; +import org.gcube.accounting.datamodel.annotations.NotEmpty; +import org.gcube.accounting.datamodel.annotations.NotEmptyIfNotNull; +import org.gcube.accounting.datamodel.annotations.ValidIP; +import org.gcube.accounting.datamodel.annotations.ValidInteger; +import org.gcube.accounting.datamodel.annotations.ValidLong; import org.gcube.accounting.exception.InvalidValueException; -import org.gcube.common.validator.annotations.NotEmpty; /** * @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/ diff --git a/src/main/java/org/gcube/accounting/datamodel/implementations/TaskUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/implementations/TaskUsageRecord.java index 77d6e61..3215f9f 100644 --- a/src/main/java/org/gcube/accounting/datamodel/implementations/TaskUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/implementations/TaskUsageRecord.java @@ -6,10 +6,10 @@ package org.gcube.accounting.datamodel.implementations; import java.util.Calendar; import org.gcube.accounting.datamodel.RawUsageRecord; -import org.gcube.accounting.datamodel.validators.ValidInteger; -import org.gcube.accounting.datamodel.validators.ValidLong; +import org.gcube.accounting.datamodel.annotations.NotEmpty; +import org.gcube.accounting.datamodel.annotations.ValidInteger; +import org.gcube.accounting.datamodel.annotations.ValidLong; import org.gcube.accounting.exception.InvalidValueException; -import org.gcube.common.validator.annotations.NotEmpty; /** * @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/ diff --git a/src/main/java/org/gcube/accounting/datamodel/validators/FieldValidator.java b/src/main/java/org/gcube/accounting/datamodel/validators/FieldValidator.java new file mode 100644 index 0000000..f9463db --- /dev/null +++ b/src/main/java/org/gcube/accounting/datamodel/validators/FieldValidator.java @@ -0,0 +1,20 @@ +/** + * + */ +package org.gcube.accounting.datamodel.validators; + +import java.io.Serializable; +import java.lang.annotation.Annotation; + +/** + * @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/ + * + */ +public interface FieldValidator { + + Class annotation(); + + boolean isValid(Serializable toValidate); + + String getErrorSuffix(); +} diff --git a/src/main/java/org/gcube/accounting/datamodel/validators/NotEmptyIfNotNullValidator.java b/src/main/java/org/gcube/accounting/datamodel/validators/NotEmptyIfNotNullValidator.java index eb462c5..8adb572 100644 --- a/src/main/java/org/gcube/accounting/datamodel/validators/NotEmptyIfNotNullValidator.java +++ b/src/main/java/org/gcube/accounting/datamodel/validators/NotEmptyIfNotNullValidator.java @@ -1,16 +1,17 @@ package org.gcube.accounting.datamodel.validators; +import java.io.Serializable; import java.util.Map; -import org.gcube.common.validator.annotations.FieldValidator; -import org.gcube.common.validator.annotations.NotEmpty; -public class NotEmptyIfNotNullValidator implements FieldValidator{ +import org.gcube.accounting.datamodel.annotations.NotEmptyIfNotNull; - public Class annotation() { - return NotEmpty.class; +public class NotEmptyIfNotNullValidator implements FieldValidator{ + + public Class annotation() { + return NotEmptyIfNotNull.class; } - public boolean isValid(Object toValidate) { + public boolean isValid(Serializable toValidate) { if (toValidate == null) return true; if (toValidate.getClass().isArray() ){ return ((Object[])toValidate).length>0; diff --git a/src/main/java/org/gcube/accounting/datamodel/validators/NotEmptyValidator.java b/src/main/java/org/gcube/accounting/datamodel/validators/NotEmptyValidator.java new file mode 100644 index 0000000..6dc72a6 --- /dev/null +++ b/src/main/java/org/gcube/accounting/datamodel/validators/NotEmptyValidator.java @@ -0,0 +1,31 @@ +package org.gcube.accounting.datamodel.validators; + +import java.io.Serializable; +import java.util.Map; + +import org.gcube.accounting.datamodel.annotations.NotEmpty; + +public class NotEmptyValidator implements FieldValidator{ + + public Class annotation() { + return NotEmpty.class; + } + + public 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; + } + + public String getErrorSuffix() { + return "is empty"; + } + +} diff --git a/src/main/java/org/gcube/accounting/datamodel/validators/NotNullValidator.java b/src/main/java/org/gcube/accounting/datamodel/validators/NotNullValidator.java new file mode 100644 index 0000000..d44c9ac --- /dev/null +++ b/src/main/java/org/gcube/accounting/datamodel/validators/NotNullValidator.java @@ -0,0 +1,22 @@ +package org.gcube.accounting.datamodel.validators; + +import java.io.Serializable; + +import org.gcube.accounting.datamodel.annotations.NotNull; + + +public class NotNullValidator implements FieldValidator{ + + public Class annotation() { + return NotNull.class; + } + + public boolean isValid(Serializable toValidate) { + return toValidate!=null; + } + + public String getErrorSuffix() { + return "is null"; + } + +} diff --git a/src/main/java/org/gcube/accounting/datamodel/validators/ValidIPValidator.java b/src/main/java/org/gcube/accounting/datamodel/validators/ValidIPValidator.java index 4bda414..7de25a8 100644 --- a/src/main/java/org/gcube/accounting/datamodel/validators/ValidIPValidator.java +++ b/src/main/java/org/gcube/accounting/datamodel/validators/ValidIPValidator.java @@ -4,7 +4,7 @@ import java.io.Serializable; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.gcube.common.validator.annotations.FieldValidator; +import org.gcube.accounting.datamodel.annotations.ValidLong; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -43,10 +43,10 @@ public class ValidIPValidator implements FieldValidator{ return ipV6Matcher.matches(); } - public boolean isValid(Object toValidate) { - if(toValidate instanceof String || toValidate instanceof Serializable){ + public boolean isValid(Serializable toValidate) { + try { return isIpAddress((String) toValidate); - } + }catch(Exception e){} return false; } diff --git a/src/main/java/org/gcube/accounting/datamodel/validators/ValidIntegerValidator.java b/src/main/java/org/gcube/accounting/datamodel/validators/ValidIntegerValidator.java index 020ad72..bef478e 100644 --- a/src/main/java/org/gcube/accounting/datamodel/validators/ValidIntegerValidator.java +++ b/src/main/java/org/gcube/accounting/datamodel/validators/ValidIntegerValidator.java @@ -1,6 +1,9 @@ package org.gcube.accounting.datamodel.validators; -import org.gcube.common.validator.annotations.FieldValidator; +import java.io.Serializable; + +import org.gcube.accounting.datamodel.annotations.ValidLong; + public class ValidIntegerValidator implements FieldValidator{ @@ -8,7 +11,7 @@ public class ValidIntegerValidator implements FieldValidator{ return ValidLong.class; } - public boolean isValid(Object toValidate) { + public boolean isValid(Serializable toValidate) { if(toValidate instanceof Integer){ return true; } diff --git a/src/main/java/org/gcube/accounting/datamodel/validators/ValidLongValidator.java b/src/main/java/org/gcube/accounting/datamodel/validators/ValidLongValidator.java index 3658c33..f08d006 100644 --- a/src/main/java/org/gcube/accounting/datamodel/validators/ValidLongValidator.java +++ b/src/main/java/org/gcube/accounting/datamodel/validators/ValidLongValidator.java @@ -1,6 +1,9 @@ package org.gcube.accounting.datamodel.validators; -import org.gcube.common.validator.annotations.FieldValidator; +import java.io.Serializable; + +import org.gcube.accounting.datamodel.annotations.ValidLong; + public class ValidLongValidator implements FieldValidator{ @@ -8,7 +11,7 @@ public class ValidLongValidator implements FieldValidator{ return ValidLong.class; } - public boolean isValid(Object toValidate) { + public boolean isValid(Serializable toValidate) { if(toValidate instanceof Long){ return true; } diff --git a/src/main/java/org/gcube/accounting/datamodel/validators/ValidOperationResultValidator.java b/src/main/java/org/gcube/accounting/datamodel/validators/ValidOperationResultValidator.java index a29e3df..d9a69f8 100644 --- a/src/main/java/org/gcube/accounting/datamodel/validators/ValidOperationResultValidator.java +++ b/src/main/java/org/gcube/accounting/datamodel/validators/ValidOperationResultValidator.java @@ -3,7 +3,7 @@ package org.gcube.accounting.datamodel.validators; import java.io.Serializable; import org.gcube.accounting.datamodel.UsageRecord.OperationResult; -import org.gcube.common.validator.annotations.FieldValidator; +import org.gcube.accounting.datamodel.annotations.ValidOperationResult; public class ValidOperationResultValidator implements FieldValidator{ @@ -11,18 +11,16 @@ public class ValidOperationResultValidator implements FieldValidator