StmSpecification implements ISaSpecification, Cloneable { @Override public StmSpecification clone() { try { StmSpecification spec = (StmSpecification) super.clone(); if (preprocessingSpec != null) { spec.preprocessingSpec = preprocessingSpec.clone(); } if (decompositionSpec != null) { spec.decompositionSpec = decompositionSpec.clone(); } return spec; } catch (CloneNotSupportedException ex) { throw new AssertionError(); } } StmSpecification(); PreprocessingSpecification getPreprocessingSpec(); BsmSpecification getDecompositionSpec(); SaBenchmarkingSpec getBenchmarkingSpec(); void setPreprocessingSpec(PreprocessingSpecification spec); void setDecompositionSpec(BsmSpecification spec); void setBenchmarkingSpec(SaBenchmarkingSpec spec); @Override String toString(); @Override StmSpecification clone(); boolean equals(StmSpecification other); @Override boolean equals(Object obj); @Override int hashCode(); @Override InformationSet write(boolean verbose); @Override boolean read(InformationSet info); static void fillDictionary(String prefix, Map<String, Class> dic); IPreprocessor buildPreprocessor(ProcessingContext context); @Override String toLongString();  }
@Test public void testClone(){ StmSpecification spec=new StmSpecification(); spec=spec.clone(); }