@Override
  public void setValues(StepDefinition otherDefinition) {
    if (!(otherDefinition instanceof ListStepDefinition)) {
      throw new SimpleWorkflowException(
          "An instance of SerialStepsDefinition is required to set values");
    }

    ListStepDefinition<T> definition = (ListStepDefinition<T>) otherDefinition;
    setId(definition.getId());
    setName(definition.getName());

    setParameters(new HashMap<String, Object>(otherDefinition.getParameters()));

    steps = new ArrayList<StepDefinition>();
    if (definition.getSteps() != null && definition.getSteps().size() > 0) {
      for (StepDefinition stepDefinition : definition.getSteps()) {
        steps.add(stepDefinition.clone());
      }
    }
  }
 @Override
 public ListStepDefinition<T> clone() {
   ListStepDefinition<T> clone = new ListStepDefinition<T>();
   clone.setValues(this);
   return clone;
 }