blob: 1080fe9ae45325a9f6015d679a04752f981fa5d5 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.usergrid.persistence.entities;
import java.util.UUID;
import org.apache.usergrid.persistence.TypedEntity;
import org.apache.usergrid.persistence.annotations.EntityProperty;
/**
* All job execution info should be in this entity
*
* @author tnine
*/
public class JobStat extends TypedEntity {
@EntityProperty(required = true, basic = true, indexed = true)
private String jobName;
@EntityProperty(required = true, basic = true, indexed = true)
private UUID jobId;
@EntityProperty(required = true, basic = true, indexed = true)
private long startTime;
@EntityProperty(required = true, basic = true, indexed = true)
private int runCount;
@EntityProperty(required = true, basic = true, indexed = true)
private int delayCount;
@EntityProperty(required = true, basic = true, indexed = true)
private long duration;
public JobStat() {
}
/**
* @param jobName
* @param jobId
*/
public JobStat( String jobName, UUID jobId ) {
super();
this.jobName = jobName;
this.jobId = jobId;
}
/** @return the jobName */
public String getJobName() {
return jobName;
}
/** @param jobName the jobName to set */
public void setJobName( String jobName ) {
this.jobName = jobName;
}
/** @return the fireTime */
public long getStartTime() {
return startTime;
}
/**
* Don't set this, it won't accomplish anything. This is overwritten by the job as an audit record
*
* @param startTime the fireTime to set
*/
public void setStartTime( long startTime ) {
this.startTime = startTime;
}
/** Increment the run count */
public void incrementRuns() {
runCount++;
}
/** Increment the run count */
public void incrementDelays() {
delayCount++;
}
/** Get the number of times this job has failed */
public int getRunCount() {
return runCount;
}
/**
* DON'T CALL THIS, USE THE INRECMENT METHOD!
*
* @param runCount the runCount to set
*/
public void setRunCount( int runCount ) {
this.runCount = runCount;
}
/**
* Return the total number of attempts that have resulted in an error and not an explicit delay
* <p/>
* runCount - delayCount
*/
public int getTotalAttempts() {
return runCount - delayCount;
}
/** @return the delayCount */
public int getDelayCount() {
return delayCount;
}
/**
* DON'T CALL THIS, USE THE INRECMENT METHOD!
*
* @param delayCount the delayCount to set
*/
public void setDelayCount( int delayCount ) {
this.delayCount = delayCount;
}
/** @return the duration */
public long getDuration() {
return duration;
}
/** @param duration the duration to set */
public void setDuration( long duration ) {
this.duration = duration;
}
/** @return the jobId */
public UUID getJobId() {
return jobId;
}
/** @param jobId the jobId to set */
public void setJobId( UUID jobId ) {
this.jobId = jobId;
}
}