/** * */ package org.gcube.accounting.datamodel.implementations; import java.util.Calendar; import org.gcube.accounting.datamodel.RawUsageRecord; import org.gcube.accounting.datamodel.SingleUsageRecord; 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; /** * @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/ * */ public class JobUsageRecord extends RawUsageRecord implements SingleUsageRecord { /** * Generated Serial Version UID */ private static final long serialVersionUID = -8648691183939346858L; public static enum JOB_STATUS { completed, failed }; @NotEmpty public static final String JOB_ID = "jobId"; @NotEmpty public static final String JOB_QUALIFIER = "jobQualifier"; @NotEmpty public static final String JOB_NAME = "jobName"; @ValidLong public static final String JOB_START_TIME = "jobStartTime"; @ValidLong public static final String JOB_END_TIME = "jobEndTime"; @NotEmpty public static final String JOB_STATUS = "jobStatus"; @ValidInteger public static final String VMS_USED = "vmsUsed"; @ValidLong public static final String WALL_DURATION = "wallDuration"; public JobUsageRecord(){ super(); } /** * @return the Job Id */ public String getJobId() { return (String) this.resourceSpecificProperties.get(JOB_ID); } /** * @param jobId Job Id * @throws InvalidValueException if fails */ public void setJobId(String jobId) throws InvalidValueException { setResourceSpecificProperty(JOB_ID, jobId); } public String getJobQualifier() { return (String) this.resourceSpecificProperties.get(JOB_QUALIFIER); } public void setJobQualifier(String jobQualifier) throws InvalidValueException { setResourceSpecificProperty(JOB_QUALIFIER, jobQualifier); } public String getJobName() { return (String) this.resourceSpecificProperties.get(JOB_NAME); } public void setJobName(String jobName) throws InvalidValueException { setResourceSpecificProperty(JOB_NAME, jobName); } public Calendar getJobStartTime() { long millis = (Long) this.resourceSpecificProperties.get(JOB_START_TIME); return timestampStringToCalendar(millis); } public void setJobStartTime(Calendar jobStartTime) throws InvalidValueException { setResourceSpecificProperty(JOB_START_TIME, jobStartTime.getTimeInMillis()); } public Calendar getJobEndTime() { long millis = (Long) this.resourceSpecificProperties.get(JOB_END_TIME); return timestampStringToCalendar(millis); } public void setJobEndTime(Calendar jobEndTime) throws InvalidValueException { setResourceSpecificProperty(JOB_END_TIME, jobEndTime.getTimeInMillis()); } public JOB_STATUS getJobStatus() { return (JOB_STATUS) this.resourceSpecificProperties.get(JOB_STATUS); } public void setJobStatus(JOB_STATUS jobStatus) throws InvalidValueException { setResourceSpecificProperty(JOB_STATUS, jobStatus); } public int getVmsUsed() { return (Integer) this.resourceSpecificProperties.get(VMS_USED); } public void setVmsUsed(int vmsUsed) throws InvalidValueException { setResourceSpecificProperty(VMS_USED, vmsUsed); } public long getWallDuration() { return (Integer) this.resourceSpecificProperties.get(WALL_DURATION); } public void setWallDuration(long wallDuration) throws InvalidValueException { setResourceSpecificProperty(WALL_DURATION, wallDuration); } }