accounting-lib/src/main/java/org/gcube/accounting/datamodel/implementations/JobUsageRecord.java

127 lines
3.4 KiB
Java

/**
*
*/
package org.gcube.accounting.datamodel.implementations;
import java.util.Calendar;
import org.gcube.accounting.datamodel.RawUsageRecord;
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 {
/**
* 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);
}
}