package test.beast.util;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import beast.core.BEASTInterface;
import beast.core.Description;
import beast.core.Param;
import beast.core.Runnable;
import beast.evolution.alignment.Taxon;
@Description("Used for testing purposed only")
public class AnnotatedRunnableTestClass extends Runnable {
int param1;
List<Taxon> taxa;
List<Double> array;
public List<Double> getArray() {
return array;
}
public void setArray(List<Double> array) {
this.array = array;
}
public void setArray(Double value) {
if (this.array == null) {
this.array = new ArrayList<>();
}
this.array.add(value);
}
public Integer getParam1() {
return param1;
}
public void setParam1(Integer param1) {
this.param1 = param1;
}
/** default constructor, should not be used **/
public AnnotatedRunnableTestClass() {
this.param1 = 0;
this.taxa = new ArrayList<>();
}
// note that if there are different constructors and an argument does not appear in the other constructor it has to be optional
public AnnotatedRunnableTestClass(
@Param(description = "test to see whether the JSON/XML parser/producer can handle annotated constructors", name = "param1", optional=true, defaultValue = "10") Integer param1,
@Param(description = "test to see whether the JSON/XML parser/producer can handle annotated List", name = "taxon", optional=true) List<Taxon> taxa) {
this.param1 = param1;
this.taxa = new ArrayList<>();
this.taxa.addAll(taxa);
}
public AnnotatedRunnableTestClass(
@Param(description = "test to see whether multiple constructors are handled, and list of Doubles", name = "array", optional=true) List<Double> array) {
this.array = array;
}
@Override
public void initAndValidate() {
}
@Override
public String getID() {
return "JSONTest";
}
@Override
public void setID(String ID) {
// ignore
}
public List<Taxon> getTaxon() {
return taxa;
}
public void setTaxon(Taxon taxon) {
this.taxa.add(taxon);
}
Set<BEASTInterface> outputs = new HashSet<>();
@Override
public Set<BEASTInterface> getOutputs() {
return outputs;
}
@Override
public void run() throws Exception {
System.out.println("We got a " + param1 + ". How's that?");
}
}