package uk.co.jemos.podam.test.dto.pdm4;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import uk.co.jemos.podam.common.PodamConstructor;
/**
* Pojo to test to test multiple static factory methods
*
* @author divanov
*
*/
public abstract class PojoWithFactoryMethods {
public static List<String> invocationOrder = new ArrayList<String>();
private String value;
@PodamConstructor(comment = "choose this one")
public static PojoWithFactoryMethods getInstance(String str, InputStream is) {
invocationOrder.add("PodamConstructor(str,abstract)");
throw new IllegalStateException("Cannot use me");
}
public static PojoWithFactoryMethods getInstance(InputStream inputStream) {
invocationOrder.add("InputStream");
throw new IllegalStateException("Cannot use me also");
}
public static PojoWithFactoryMethods getInstance(int num, int num2) {
invocationOrder.add("int,int");
throw new IllegalStateException("Cannot use me neither");
}
public static PojoWithFactoryMethods getInstance(InputStream inputStream, int num) {
invocationOrder.add("abstract,int");
throw new IllegalStateException("Cannot use me also");
}
@PodamConstructor(comment = "choose this one")
public static PojoWithFactoryMethods getInstance(String value) {
invocationOrder.add("PodamConstructor(str)");
throw new IllegalStateException("Cannot use me");
}
@PodamConstructor(comment = "choose this one")
public static PojoWithFactoryMethods getInstance(String str, boolean bool) {
invocationOrder.add("PodamConstructor(str,bool)");
throw new IllegalStateException("Cannot use me");
}
public static PojoWithFactoryMethods getInstance() {
invocationOrder.add("no-op");
throw new IllegalStateException("Cannot use me too");
}
public void setValue(String value) {
this.value = value;
}
public String getValue() {
return value;
}
@Override
public String toString() {
return String.format("{value: '%s'}", value);
}
}