diff --git a/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToConsumerIdAction.java b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToConsumerIdAction.java index fb2404b..ee81bb4 100644 --- a/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToConsumerIdAction.java +++ b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToConsumerIdAction.java @@ -18,7 +18,7 @@ public class MoveToConsumerIdAction implements FieldAction { NotEmptyIfNotNullValidator neinnv = new NotEmptyIfNotNullValidator(); value = neinnv.validate(key, value, record); record.setResourceProperty(UsageRecord.CONSUMER_ID, (String) value); - return null; + return null; //Returning null the initial key is removed from Record } } \ No newline at end of file diff --git a/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToJobWallDuration.java b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToJobWallDuration.java new file mode 100644 index 0000000..16e9ed5 --- /dev/null +++ b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToJobWallDuration.java @@ -0,0 +1,16 @@ +/** + * + */ +package org.gcube.accounting.datamodel.backwardcompatibility; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import org.gcube.documentstore.records.implementation.FieldDecorator; + +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +@FieldDecorator(action=MoveToJobWallDurationAction.class) +public @interface MoveToJobWallDuration { } \ No newline at end of file diff --git a/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToJobWallDurationAction.java b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToJobWallDurationAction.java new file mode 100644 index 0000000..8bbc4f2 --- /dev/null +++ b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToJobWallDurationAction.java @@ -0,0 +1,24 @@ +/** + * + */ +package org.gcube.accounting.datamodel.backwardcompatibility; + +import java.io.Serializable; + +import org.gcube.accounting.datamodel.usagerecords.JobUsageRecord; +import org.gcube.documentstore.exception.InvalidValueException; +import org.gcube.documentstore.records.Record; +import org.gcube.documentstore.records.implementation.FieldAction; +import org.gcube.documentstore.records.implementation.validations.validators.NotEmptyIfNotNullValidator; + +public class MoveToJobWallDurationAction implements FieldAction { + + @Override + public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException { + NotEmptyIfNotNullValidator neinnv = new NotEmptyIfNotNullValidator(); + value = neinnv.validate(key, value, record); + record.setResourceProperty(JobUsageRecord.WALL_DURATION, (String) value); + return null; //Returning null the initial key is removed from Record + } + +} \ No newline at end of file diff --git a/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToOperationResultAction.java b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToOperationResultAction.java index c99e47e..0c5ee16 100644 --- a/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToOperationResultAction.java +++ b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToOperationResultAction.java @@ -26,7 +26,7 @@ public class MoveToOperationResultAction implements FieldAction { ValidOperationResultValidator vorv = new ValidOperationResultValidator(); value = vorv.validate(key, value, record); record.setResourceProperty(UsageRecord.OPERATION_RESULT, (OperationResult) value); - return null; + return null; //Returning null the initial key is removed from Record } } diff --git a/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToRecordTypeAction.java b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToRecordTypeAction.java index 37bae0e..9657a9c 100644 --- a/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToRecordTypeAction.java +++ b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToRecordTypeAction.java @@ -16,7 +16,7 @@ public class MoveToRecordTypeAction implements FieldAction { if(value instanceof String && value!= null && !((String) value).isEmpty()){ record.setResourceProperty(Record.RECORD_TYPE, value); } - return null; + return null; //Returning null the initial key is removed from Record } } \ No newline at end of file diff --git a/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToTaskEndTimeAction.java b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToTaskEndTimeAction.java index be35070..f6dd253 100644 --- a/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToTaskEndTimeAction.java +++ b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToTaskEndTimeAction.java @@ -24,7 +24,7 @@ public class MoveToTaskEndTimeAction implements FieldAction { Serializable value, Record record) throws InvalidValueException { record.setResourceProperty(AbstractTaskUsageRecord.TASK_END_TIME, value); - return null; + return null; //Returning null the initial key is removed from Record } } diff --git a/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToTaskStartTimeAction.java b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToTaskStartTimeAction.java index a27174c..5738026 100644 --- a/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToTaskStartTimeAction.java +++ b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToTaskStartTimeAction.java @@ -24,7 +24,7 @@ public class MoveToTaskStartTimeAction implements FieldAction { Serializable value, Record record) throws InvalidValueException { record.setResourceProperty(AbstractTaskUsageRecord.TASK_START_TIME, value); - return null; + return null; //Returning null the initial key is removed from Record } } diff --git a/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToTaskWallDuration.java b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToTaskWallDuration.java new file mode 100644 index 0000000..d321628 --- /dev/null +++ b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToTaskWallDuration.java @@ -0,0 +1,16 @@ +/** + * + */ +package org.gcube.accounting.datamodel.backwardcompatibility; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import org.gcube.documentstore.records.implementation.FieldDecorator; + +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +@FieldDecorator(action=MoveToTaskWallDurationAction.class) +public @interface MoveToTaskWallDuration { } \ No newline at end of file diff --git a/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToTaskWallDurationAction.java b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToTaskWallDurationAction.java new file mode 100644 index 0000000..56a3c29 --- /dev/null +++ b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToTaskWallDurationAction.java @@ -0,0 +1,24 @@ +/** + * + */ +package org.gcube.accounting.datamodel.backwardcompatibility; + +import java.io.Serializable; + +import org.gcube.accounting.datamodel.usagerecords.TaskUsageRecord; +import org.gcube.documentstore.exception.InvalidValueException; +import org.gcube.documentstore.records.Record; +import org.gcube.documentstore.records.implementation.FieldAction; +import org.gcube.documentstore.records.implementation.validations.validators.NotEmptyIfNotNullValidator; + +public class MoveToTaskWallDurationAction implements FieldAction { + + @Override + public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException { + NotEmptyIfNotNullValidator neinnv = new NotEmptyIfNotNullValidator(); + value = neinnv.validate(key, value, record); + record.setResourceProperty(TaskUsageRecord.WALL_DURATION, (String) value); + return null; //Returning null the initial key is removed from Record + } + +} \ No newline at end of file diff --git a/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractJobUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractJobUsageRecord.java index 4f882aa..f3917a7 100644 --- a/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractJobUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractJobUsageRecord.java @@ -8,6 +8,8 @@ import java.util.Calendar; import java.util.Map; import org.gcube.accounting.datamodel.BasicUsageRecord; +import org.gcube.accounting.datamodel.backwardcompatibility.MoveToJobWallDuration; +import org.gcube.accounting.datamodel.deprecationmanagement.DeprecatedWarning; import org.gcube.documentstore.exception.InvalidValueException; import org.gcube.documentstore.records.implementation.ComputedField; import org.gcube.documentstore.records.implementation.RequiredField; @@ -38,8 +40,12 @@ public abstract class AbstractJobUsageRecord extends BasicUsageRecord { public static final String JOB_START_TIME = "jobStartTime"; @ValidLong public static final String JOB_END_TIME = "jobEndTime"; + + @DeprecatedWarning @MoveToJobWallDuration + protected static final String _WALL_DURATION = "_wallDuration"; + @RequiredField @ComputedField(action=CalculateJobWallDurationAction.class) @ValidLong - public static final String WALL_DURATION = "_wallDuration"; + public static final String WALL_DURATION = "wallDuration"; public AbstractJobUsageRecord(){ super(); diff --git a/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractTaskUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractTaskUsageRecord.java index ec7791f..98d2af6 100644 --- a/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractTaskUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractTaskUsageRecord.java @@ -9,6 +9,9 @@ import java.util.HashMap; import java.util.Map; import org.gcube.accounting.datamodel.BasicUsageRecord; +import org.gcube.accounting.datamodel.backwardcompatibility.MoveToConsumerId; +import org.gcube.accounting.datamodel.backwardcompatibility.MoveToTaskWallDuration; +import org.gcube.accounting.datamodel.deprecationmanagement.DeprecatedWarning; import org.gcube.documentstore.exception.InvalidValueException; import org.gcube.documentstore.records.implementation.ComputedField; import org.gcube.documentstore.records.implementation.RequiredField; @@ -41,8 +44,12 @@ public abstract class AbstractTaskUsageRecord extends BasicUsageRecord { public static final String TASK_START_TIME = "taskStartTime"; @ValidLong public static final String TASK_END_TIME = "taskEndTime"; + + @DeprecatedWarning @MoveToTaskWallDuration + protected static final String _WALL_DURATION = "_wallDuration"; + @RequiredField @ComputedField(action=CalculateTaskWallDurationAction.class) @ValidLong - public static final String WALL_DURATION = "_wallDuration"; + public static final String WALL_DURATION = "wallDuration";