diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/domain/BatchStatus.java b/spring-batch-core/src/main/java/org/springframework/batch/core/domain/BatchStatus.java
index aea63978e..4502472e7 100644
--- a/spring-batch-core/src/main/java/org/springframework/batch/core/domain/BatchStatus.java
+++ b/spring-batch-core/src/main/java/org/springframework/batch/core/domain/BatchStatus.java
@@ -19,24 +19,22 @@ package org.springframework.batch.core.domain;
import java.io.Serializable;
/**
- * Typesafe enumeration representing the status of an artifact within the
- * batch environment. See Effective Java Programming by Joshua Bloch for more
- * details on the pattern used.
+ * Typesafe enumeration representing the status of an artifact within the batch environment. See Effective Java
+ * Programming by Joshua Bloch for more details on the pattern used.
*
- * A BatchStatus can be safely serialized, however, it should be noted
- * that the pattern can break down if different class loaders load
- * the enumeration.
+ * A BatchStatus can be safely serialized, however, it should be noted that the pattern can break down if different
+ * class loaders load the enumeration.
*
* @author Lucas Ward
* @author Greg Kick
*/
-public class BatchStatus implements Serializable{
+public class BatchStatus implements Serializable {
private static final long serialVersionUID = 1634960297477743037L;
private final String name;
-
+
private BatchStatus(String name) {
this.name = name;
}
@@ -64,12 +62,12 @@ public class BatchStatus implements Serializable{
/**
* Given a string representation of a status, return the appropriate BatchStatus.
*
- * @param statusAsString: string representation of a status
+ * @param statusAsString string representation of a status
* @return a valid BatchStatus or null if the input is null
* @throws IllegalArgumentException if no status matches provided string.
*/
public static BatchStatus getStatus(String statusAsString) {
- if (statusAsString==null) {
+ if (statusAsString == null) {
return null;
}
final String upperCaseStatusAsString = statusAsString.toUpperCase();
diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/domain/JobParameters.java b/spring-batch-core/src/main/java/org/springframework/batch/core/domain/JobParameters.java
index 2c4d515a0..76f128c99 100644
--- a/spring-batch-core/src/main/java/org/springframework/batch/core/domain/JobParameters.java
+++ b/spring-batch-core/src/main/java/org/springframework/batch/core/domain/JobParameters.java
@@ -13,12 +13,10 @@ import java.util.Map.Entry;
import org.apache.commons.lang.builder.HashCodeBuilder;
/**
- * Value object representing runtime parameters to a batch job. Because
- * the parameters have no individual meaning outside of the JobIdentifier they
- * are contained within, it is a value object rather than an entity. It is also
- * extremely important that a parameters object can be reliably compared to another
- * for equality, in order to determine if one JobIdentifier equals another.
- * Furthermore, because these parameters will need to be persisted, it is vital
+ * Value object representing runtime parameters to a batch job. Because the parameters have no individual meaning
+ * outside of the JobIdentifier they are contained within, it is a value object rather than an entity. It is also
+ * extremely important that a parameters object can be reliably compared to another for equality, in order to determine
+ * if one JobIdentifier equals another. Furthermore, because these parameters will need to be persisted, it is vital
* that the types added are restricted.
*
* @author Lucas Ward
@@ -27,34 +25,32 @@ import org.apache.commons.lang.builder.HashCodeBuilder;
public class JobParameters {
private final Map stringMap;
-
+
private final Map longMap;
-
+
private final Map dateMap;
-
+
/**
- * Default constructor. Creates a new empty JobRuntimeParameters. It should be noted
- * that this constructor should only be used if an empty parameters is needed, since
- * JobRuntimeParameters is immutable.
+ * Default constructor. Creates a new empty JobRuntimeParameters. It should be noted that this constructor should
+ * only be used if an empty parameters is needed, since JobRuntimeParameters is immutable.
*/
- public JobParameters(){
+ public JobParameters() {
this.stringMap = new LinkedHashMap();
this.longMap = new LinkedHashMap();
this.dateMap = new LinkedHashMap();
}
-
+
/**
- * Create a new parameters object based upon three maps for each of the three
- * data types. See {@link JobParametersBuilder} for an easier way to
- * create paramters.
+ * Create a new parameters object based upon three maps for each of the three data types. See
+ * {@link JobParametersBuilder} for an easier way to create parameters.
*
* @param stringMap
* @param longMap
* @param dateMap
*/
- public JobParameters(Map stringMap, Map longMap, Map dateMap){
+ public JobParameters(Map stringMap, Map longMap, Map dateMap) {
super();
-
+
validateMap(stringMap, String.class);
validateMap(longMap, Long.class);
validateMap(dateMap, Date.class);
@@ -62,149 +58,143 @@ public class JobParameters {
this.longMap = new LinkedHashMap(longMap);
this.dateMap = copyDateMap(dateMap);
}
-
+
/**
* Typesafe Getter for the String represented by the provided key.
*
- * @param key
- * @return
+ * @param key The key to get a value for
+ * @return The String value
*/
- public String getString(String key){
- return (String)stringMap.get(key);
+ public String getString(String key) {
+ return (String) stringMap.get(key);
}
-
+
/**
* Typesafe Getter for the Long represented by the provided key.
*
- * @param key
- * @return
+ * @param key The key to get a value for
+ * @return The Long value
*/
- public Long getLong(String key){
- return (Long)longMap.get(key);
+ public Long getLong(String key) {
+ return (Long) longMap.get(key);
}
-
+
/**
* Typesafe Getter for the Date represented by the provided key.
*
- * @param key
- * @return
+ * @param key The key to get a value for
+ * @return The java.util.Date value
*/
- public Date getDate(String key){
- return (Date)dateMap.get(key);
+ public Date getDate(String key) {
+ return (Date) dateMap.get(key);
}
-
+
/**
- * Get a map of all parameters, including string, long, and date. It should be noted
- * that a Collections$UnmodifiableMap is returned, ensuring immutability.
+ * Get a map of all parameters, including string, long, and date. It should be noted that a
+ * Collections$UnmodifiableMap is returned, ensuring immutability.
*
* @return an unmodifiable map containing all parameters.
*/
- public Map getParameters(){
+ public Map getParameters() {
Map tempMap = new LinkedHashMap(stringMap);
tempMap.putAll(longMap);
tempMap.putAll(dateMap);
return Collections.unmodifiableMap(tempMap);
}
-
+
/**
* Get a map of only string parameters.
*
* @return String parameters.
*/
- public Map getStringParameters(){
+ public Map getStringParameters() {
return Collections.unmodifiableMap(stringMap);
}
-
+
/**
* Get a map of only Long parameters
*
* @return long parameters.
*/
- public Map getLongParameters(){
+ public Map getLongParameters() {
return Collections.unmodifiableMap(longMap);
}
-
+
/**
* Get a map of only Date parameters
*
* @return date parameters.
*/
- public Map getDateParameters(){
+ public Map getDateParameters() {
return Collections.unmodifiableMap(dateMap);
}
-
+
/**
* @return true if the prameters is empty, false otherwise.
*/
- public boolean isEmpty(){
+ public boolean isEmpty() {
return (dateMap.isEmpty() && longMap.isEmpty() && stringMap.isEmpty());
}
-
- /*
- * Convenience method for validating that a the provided map only contains a particular
- * type as a value, with only a String as a key.
+
+ /*
+ * Convenience method for validating that a the provided map only contains a particular type as a value, with only a
+ * String as a key.
*/
- private void validateMap(Map map, Class type){
-
- for(Iterator it = map.entrySet().iterator();it.hasNext();){
-
- Entry entry = (Entry)it.next();
- if(entry.getKey() instanceof String == false){
+ private void validateMap(Map map, Class type) {
+
+ for (Iterator it = map.entrySet().iterator(); it.hasNext();) {
+
+ Entry entry = (Entry) it.next();
+ if (entry.getKey() instanceof String == false) {
throw new IllegalArgumentException("All parameter keys must be strings.");
}
- if(entry.getValue().getClass() != type){
- throw new IllegalArgumentException("The values in this map must be of type:[" + type +
- "].");
+ if (entry.getValue().getClass() != type) {
+ throw new IllegalArgumentException("The values in this map must be of type:[" + type + "].");
}
}
}
-
+
/*
* Convenience method for copying Date values to ensure immutability.
*/
- private Map copyDateMap(Map dateMap){
+ private Map copyDateMap(Map dateMap) {
Map tempMap = new LinkedHashMap();
-
- for(Iterator it = dateMap.entrySet().iterator();it.hasNext();){
- Entry entry = (Entry)it.next();
- Date date = (Date)entry.getValue();
+
+ for (Iterator it = dateMap.entrySet().iterator(); it.hasNext();) {
+ Entry entry = (Entry) it.next();
+ Date date = (Date) entry.getValue();
tempMap.put(entry.getKey(), new Date(date.getTime()));
}
-
+
return tempMap;
}
-
+
public boolean equals(Object obj) {
-
- if(obj instanceof JobParameters == false){
+
+ if (obj instanceof JobParameters == false) {
return false;
}
-
- if(this == obj){
+
+ if (this == obj) {
return true;
}
-
- JobParameters parameters = (JobParameters)obj;
-
- //Since the type contained by each map is known, it's safe to call Map.equals()
- if(getParameters().equals(parameters.getParameters())){
+
+ JobParameters parameters = (JobParameters) obj;
+
+ // Since the type contained by each map is known, it's safe to call Map.equals()
+ if (getParameters().equals(parameters.getParameters())) {
return true;
- }
- else{
+ } else {
return false;
}
}
-
+
public int hashCode() {
- return new HashCodeBuilder(7, 21).
- append(stringMap).
- append(longMap).
- append(dateMap).
- toHashCode();
+ return new HashCodeBuilder(7, 21).append(stringMap).append(longMap).append(dateMap).toHashCode();
}
-
+
public String toString() {
-
- return stringMap.toString() + longMap.toString() + dateMap.toString();
+
+ return stringMap.toString() + longMap.toString() + dateMap.toString();
}
}
diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/domain/StepExecution.java b/spring-batch-core/src/main/java/org/springframework/batch/core/domain/StepExecution.java
index 240590538..b809b136a 100644
--- a/spring-batch-core/src/main/java/org/springframework/batch/core/domain/StepExecution.java
+++ b/spring-batch-core/src/main/java/org/springframework/batch/core/domain/StepExecution.java
@@ -69,81 +69,169 @@ public class StepExecution extends Entity {
*
* @param step the step to which this execution belongs
* @param jobExecution the current job execution
+ * @param id the id of this execution
*/
public StepExecution(StepInstance step, JobExecution jobExecution, Long id) {
super(id);
this.step = step;
this.jobExecution = jobExecution;
}
-
- public StepExecution(StepInstance step, JobExecution jobExecution){
+
+ /**
+ * Constructor that substitutes in null for the execution id
+ *
+ * @param step the step to which this execution belongs
+ * @param jobExecution the current job execution
+ */
+ public StepExecution(StepInstance step, JobExecution jobExecution) {
this(step, jobExecution, null);
}
+ /**
+ * Increments the number of commits in this execution
+ */
public void incrementCommitCount() {
commitCount++;
}
+ /**
+ * Increments the number of tasks in this execution
+ */
public void incrementTaskCount() {
taskCount++;
}
+ /**
+ * Returns the {@link ExecutionAttributes} for this execution
+ *
+ * @return the attributes
+ */
public ExecutionAttributes getExecutionAttributes() {
return executionAttributes;
}
+ /**
+ * Sets the {@link ExecutionAttributes} for this execution
+ *
+ * @param executionAttributes the attributes
+ */
public void setExecutionAttributes(ExecutionAttributes executionAttributes) {
this.executionAttributes = executionAttributes;
}
+ /**
+ * Returns the current number of commits for this execution
+ *
+ * @return the current number of commits
+ */
public Integer getCommitCount() {
return new Integer(commitCount);
}
+ /**
+ * Sets the current number of commits for this execution
+ *
+ * @param commitCount the current number of commits
+ */
public void setCommitCount(int commitCount) {
this.commitCount = commitCount;
}
+ /**
+ * Returns the time that this execution ended
+ *
+ * @return the time that this execution ended
+ */
public Date getEndTime() {
return endTime;
}
+ /**
+ * Sets the time that this execution ended
+ *
+ * @param endTime the time that this execution ended
+ */
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
+ /**
+ * Returns the current number of tasks for this execution
+ *
+ * @return the current number of tasks for this execution
+ */
public Integer getTaskCount() {
return new Integer(taskCount);
}
+ /**
+ * Sets the current number of tasks for this execution
+ *
+ * @param taskCount the current number of tasks for this execution
+ */
public void setTaskCount(int taskCount) {
this.taskCount = taskCount;
}
+ /**
+ * Sets the current number of rollbacks for this execution
+ *
+ * @param rollbackCount the current number of rollbacks for this execution
+ */
public void setRollbackCount(int rollbackCount) {
this.rollbackCount = rollbackCount;
}
+ /**
+ * Returns the current number of rollbacks for this execution
+ *
+ * @return the current number of rollbacks for this execution
+ */
public Integer getRollbackCount() {
return new Integer(rollbackCount);
}
+ /**
+ * Gets the time this execution started
+ *
+ * @return the time this execution started
+ */
public Date getStartTime() {
return startTime;
}
+ /**
+ * Sets the time this execution started
+ *
+ * @param startTime the time this execution started
+ */
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
+ /**
+ * Returns the current status of this step
+ *
+ * @return the current status of this step
+ */
public BatchStatus getStatus() {
return status;
}
+ /**
+ * Sets the current status of this step
+ *
+ * @param status the current status of this step
+ */
public void setStatus(BatchStatus status) {
this.status = status;
}
+ /**
+ * Returns the id for this step
+ *
+ * @return the id for this step
+ */
public Long getStepId() {
if (step != null) {
return step.getId();
@@ -153,6 +241,7 @@ public class StepExecution extends Entity {
/**
* Accessor for the job execution id.
+ *
* @return the jobExecutionId
*/
public Long getJobExecutionId() {
@@ -164,6 +253,7 @@ public class StepExecution extends Entity {
/*
* (non-Javadoc)
+ *
* @see org.springframework.batch.container.common.domain.Entity#equals(java.lang.Object)
*/
public boolean equals(Object obj) {
@@ -177,23 +267,24 @@ public class StepExecution extends Entity {
return jobExecutionId.equals(other.getJobExecutionId());
}
return stepId.equals(other.getStepId())
- && (jobExecutionId == null || jobExecutionId.equals(other.getJobExecutionId()));
+ && (jobExecutionId == null || jobExecutionId.equals(other.getJobExecutionId()));
}
/*
* (non-Javadoc)
+ *
* @see org.springframework.batch.container.common.domain.Entity#hashCode()
*/
public int hashCode() {
Object stepId = getStepId();
Object jobExecutionId = getJobExecutionId();
return super.hashCode() + 31 * (stepId != null ? stepId.hashCode() : 0) + 91
- * (jobExecutionId != null ? jobExecutionId.hashCode() : 0);
+ * (jobExecutionId != null ? jobExecutionId.hashCode() : 0);
}
public String toString() {
return super.toString() + ", name=" + getName() + ", taskCount=" + taskCount + ", commitCount=" + commitCount
- + ", rollbackCount=" + rollbackCount;
+ + ", rollbackCount=" + rollbackCount;
}
private String getName() {
@@ -216,6 +307,7 @@ public class StepExecution extends Entity {
/**
* Accessor for the step governing this execution.
+ *
* @return the step
*/
public StepInstance getStep() {
@@ -224,8 +316,9 @@ public class StepExecution extends Entity {
/**
* Accessor for the execution context information of the enclosing job.
- * @return the {@link jobExecutionContext} that was used to start this step
- * execution.
+ *
+ * @return the {@link JobExecution} that was used to start this step
+ * execution.
*/
public JobExecution getJobExecution() {
return jobExecution;
diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/domain/StepInstance.java b/spring-batch-core/src/main/java/org/springframework/batch/core/domain/StepInstance.java
index 22633fd95..8169eab81 100644
--- a/spring-batch-core/src/main/java/org/springframework/batch/core/domain/StepInstance.java
+++ b/spring-batch-core/src/main/java/org/springframework/batch/core/domain/StepInstance.java
@@ -16,7 +16,6 @@
package org.springframework.batch.core.domain;
-import org.springframework.batch.item.ExecutionAttributes;
/**
*
diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/domain/StepSupport.java b/spring-batch-core/src/main/java/org/springframework/batch/core/domain/StepSupport.java index a04b51157..9ccc76bed 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/domain/StepSupport.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/domain/StepSupport.java @@ -19,9 +19,8 @@ import org.springframework.batch.io.exception.BatchCriticalException; import org.springframework.beans.factory.BeanNameAware; /** - * Basic no-op support implementation for use as base class for {@link Step}. - * Implements {@link BeanNameAware} so that if no name is provided explicitly it - * will be inferred from the bean definition in Spring configuration. + * Basic no-op support implementation for use as base class for {@link Step}. Implements {@link BeanNameAware} so that + * if no name is provided explicitly it will be inferred from the bean definition in Spring configuration. * * @author Dave Syer * @@ -51,21 +50,14 @@ public class StepSupport implements Step, BeanNameAware { this.name = string; } - /* - * (non-Javadoc) - * - * @see org.springframework.batch.core.configuration.StepConfiguration#getName() - */ public String getName() { return this.name; } /** - * Set the name property if it is not already set. Because of the order of - * the callbacks in a Spring container the name property will be set first - * if it is present. Care is needed with bean definition inheritance - if a - * parent bean has a name, then its children need an explicit name as well, - * otherwise they will not be unique. + * Set the name property if it is not already set. Because of the order of the callbacks in a Spring container the + * name property will be set first if it is present. Care is needed with bean definition inheritance - if a parent + * bean has a name, then its children need an explicit name as well, otherwise they will not be unique. * * @see org.springframework.beans.factory.BeanNameAware#setBeanName(java.lang.String) */ @@ -76,8 +68,7 @@ public class StepSupport implements Step, BeanNameAware { } /** - * Set the name property. Always overrides the default value if this object - * is a Spring bean. + * Set the name property. Always overrides the default value if this object is a Spring bean. * * @see #setBeanName(java.lang.String) */ @@ -85,11 +76,6 @@ public class StepSupport implements Step, BeanNameAware { this.name = name; } - /* - * (non-Javadoc) - * - * @see org.springframework.batch.core.configuration.StepConfiguration#getStartLimit() - */ public int getStartLimit() { return this.startLimit; } @@ -103,11 +89,6 @@ public class StepSupport implements Step, BeanNameAware { this.startLimit = startLimit; } - /* - * (non-Javadoc) - * - * @see org.springframework.batch.core.configuration.StepConfiguration#shouldAllowStartIfComplete() - */ public boolean isAllowStartIfComplete() { return this.allowStartIfComplete; } @@ -136,9 +117,8 @@ public class StepSupport implements Step, BeanNameAware { * * @see org.springframework.batch.core.domain.Step#execute(org.springframework.batch.core.domain.StepExecution) */ - public void execute(StepExecution stepExecution) - throws StepInterruptedException, BatchCriticalException { + public void execute(StepExecution stepExecution) throws StepInterruptedException, BatchCriticalException { throw new UnsupportedOperationException( - "Cannot process a StepExecution. Use a smarter subclass of StepSupport."); + "Cannot process a StepExecution. Use a smarter subclass of StepSupport."); } }