refs #200: Create accouting-lib library

https://support.d4science.org/issues/200
Updating Javadoc

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/accounting/accounting-lib@115556 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Luca Frosini 2015-06-25 15:41:20 +00:00
parent 2ca5595de7
commit 5afd95bfa3
2 changed files with 52 additions and 30 deletions

View File

@ -45,28 +45,43 @@ public abstract class BasicUsageRecord implements UsageRecord, Serializable {
private static Logger logger = LoggerFactory.getLogger(BasicUsageRecord.class); private static Logger logger = LoggerFactory.getLogger(BasicUsageRecord.class);
/** /**
* An unique identifier for the UsageRecord * KEY for : The unique identifier for the UsageRecord.
* The ID is automatically Created. Set the ID only if you really know what
* you are going to do.
*/ */
@RequiredField @NotEmpty @RequiredField @NotEmpty
public static final String ID = "id"; protected static final String ID = "id";
/** /**
* The user (or the Consumer Identity, that in the S2S communication is * KEY for : The user (or the Consumer Identity, that in the S2S
* another service) actually consuming the resource * communication is another service).
*/ */
@RequiredField @NotEmpty @RequiredField @NotEmpty
public static final String CONSUMER_ID = "consumerId"; public static final String CONSUMER_ID = "consumerId";
/** /**
* When the UR was created * KEY for : The instant when the UR was created. The value will be recorded
* in UTC milliseconds from the epoch.
*/ */
@RequiredField @ValidLong @RequiredField @ValidLong
public static final String CREATION_TIME = "creationTime"; public static final String CREATION_TIME = "creationTime";
/**
* Internal USE ONLY.
* KEY for : The Class Name of the represented {#Usage Record}
*/
@RequiredField @NotEmpty @RequiredField @NotEmpty
protected static final String USAGE_RECORD_TYPE = "usageRecordType"; protected static final String USAGE_RECORD_TYPE = "usageRecordType";
/**
* KEY for : The accounting scope
*/
@RequiredField @NotEmpty @RequiredField @NotEmpty
public static final String SCOPE = "scope"; public static final String SCOPE = "scope";
/**
* KEY for : The Operation Result of the accounted operation.
* The value is expressed as
* {@link #org.gcube.accounting.datamodel.UsageRecord.OperationResult}
*/
@RequiredField @ValidOperationResult @RequiredField @ValidOperationResult
public static final String OPERATION_RESULT = "operationResult"; public static final String OPERATION_RESULT = "operationResult";
@ -78,13 +93,28 @@ public abstract class BasicUsageRecord implements UsageRecord, Serializable {
protected Set<String> requiredFields; protected Set<String> requiredFields;
protected Set<String> computedFields; protected Set<String> computedFields;
/**
* KEY for : Used in aggregated record. Represent the left end of the time
* interval covered by this {#Usage Record}
* The value will be recorded in UTC milliseconds from the epoch.
*/
@AggregatedField @ValidLong @AggregatedField @ValidLong
protected static final String START_TIME = "startTime"; protected static final String START_TIME = "startTime";
/**
* KEY for : Used in aggregated record. Represent the right end of the time
* interval covered by this {#Usage Record}
* The value will be recorded in UTC milliseconds from the epoch.
*/
@AggregatedField @ValidLong @AggregatedField @ValidLong
protected static final String END_TIME = "endTime"; protected static final String END_TIME = "endTime";
/**
* Internal USE ONLY.
* KEY for : Indicate that the record is an aggregation
*/
@AggregatedField @NotEmptyIfNotNull @AggregatedField @NotEmptyIfNotNull
protected static final String AGGREGATED = "aggregated"; protected static final String AGGREGATED = "aggregated";
protected Set<String> aggregatedFields; protected Set<String> aggregatedFields;

View File

@ -19,6 +19,8 @@ public interface UsageRecord extends Comparable<UsageRecord>{
public String getId(); public String getId();
/** /**
* The ID is automatically Created by the implementation Class.
* Set the ID only if you really know what you are going to do.
* Set the unique id for this {#UsageRecord} * Set the unique id for this {#UsageRecord}
* @param id {#UsageRecord} Unique ID * @param id {#UsageRecord} Unique ID
* @throws InvalidValueException * @throws InvalidValueException
@ -26,26 +28,30 @@ public interface UsageRecord extends Comparable<UsageRecord>{
public void setId(String id) throws InvalidValueException; public void setId(String id) throws InvalidValueException;
/** /**
* Return the identity of the entity that consumed the resource * Return the user (or the Consumer Identity, that in the S2S
* communication is another service)
* @return Consumer ID * @return Consumer ID
*/ */
public String getConsumerId(); public String getConsumerId();
/** /**
* Set the identity of the entity that consumed the resource * Set the user (or the Consumer Identity, that in the S2S
* communication is another service)
* @param consumerId Consumer ID * @param consumerId Consumer ID
* @throws InvalidValueException * @throws InvalidValueException
*/ */
public void setConsumerId(String consumerId) throws InvalidValueException; public void setConsumerId(String consumerId) throws InvalidValueException;
/** /**
* Return the creation time for this {#UsageRecord} * Return the instant when this {#UsageRecord} was created.
* @return the creation time for this {#UsageRecord} * @return the creation time for this {#UsageRecord}
*/ */
public Calendar getCreationTime(); public Calendar getCreationTime();
/** /**
* Set the creation time for this {#UsageRecord} * The CreationTime is automatically created by the implementation Class.
* Set the CreationTime only if you really know what you are going to do.
* Set the instant when this {#UsageRecord} was created.
* @param creationTime creation time * @param creationTime creation time
* @throws InvalidValueException * @throws InvalidValueException
*/ */
@ -53,8 +59,8 @@ public interface UsageRecord extends Comparable<UsageRecord>{
/** /**
* Return the accounting scope of the {#UsageRecord} * Return the scope of this {#UsageRecord}
* @return The Accounting scope of the {#UsageRecord} * @return The scope of this {#UsageRecord}
*/ */
public String getScope(); public String getScope();
@ -65,21 +71,6 @@ public interface UsageRecord extends Comparable<UsageRecord>{
*/ */
public void setScope(String scope) throws InvalidValueException; public void setScope(String scope) throws InvalidValueException;
/* *
* Return the id of the usage record aggregating this, null if this record
* has not been aggregated by any record.
* @return Aggregated Id The ID of the aggregation Record
* /
public String getAggregatedUsageRecordId();
/* *
* Set the id of the usage record aggregating this
* @param aggregatedId The ID of the aggregation Record
* @throws InvalidValueException
* /
public void setAggregatedUsageRecordId(String aggregatedId) throws InvalidValueException;
*/
/** /**
* Return all resource-specific properties. The returned Map is a copy of * Return all resource-specific properties. The returned Map is a copy of
* the internal representation. Any modification to the returned Map MUST * the internal representation. Any modification to the returned Map MUST
@ -92,7 +83,6 @@ public interface UsageRecord extends Comparable<UsageRecord>{
* Set all resource-specific properties, replacing existing ones * Set all resource-specific properties, replacing existing ones
*/ */
public void setResourceProperties(Map<String, Serializable> resourceSpecificProperties) throws InvalidValueException; public void setResourceProperties(Map<String, Serializable> resourceSpecificProperties) throws InvalidValueException;
/** /**
* Return the value of the given resource property. * Return the value of the given resource property.
@ -111,7 +101,7 @@ public interface UsageRecord extends Comparable<UsageRecord>{
public void setResourceProperty(String key, Serializable value) throws InvalidValueException; public void setResourceProperty(String key, Serializable value) throws InvalidValueException;
/** /**
* @return the Operation Result related to the accounted Usage Record * @return the Operation Result of the accounted operation.
*/ */
public OperationResult getOperationResult(); public OperationResult getOperationResult();
@ -124,7 +114,9 @@ public interface UsageRecord extends Comparable<UsageRecord>{
/** /**
* Validate the Resource Record * Validate the Resource Record.
* The validation check if all the Required Field are set and has valid
* value.
* @throws InvalidValueException * @throws InvalidValueException
*/ */
public void validate() throws InvalidValueException; public void validate() throws InvalidValueException;