package me.august.lumen.compile.resolve.convert;
import me.august.lumen.compile.resolve.convert.types.Conversion;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ConversionStrategy {
private List<Conversion> steps;
public ConversionStrategy(Conversion... steps) {
this.steps = new ArrayList<>(Arrays.asList(steps));
}
public ConversionStrategy(List<Conversion> steps) {
this.steps = steps;
}
public ConversionStrategy addStep(Conversion conversion) {
steps.add(conversion);
return this;
}
public List<Conversion> getSteps() {
return steps;
}
public boolean isValid() {
for (Conversion conversion : steps) {
if (conversion == null) {
return false;
}
}
return true;
}
@Override
public String toString() {
return "ConversionStrategy{" +
"steps=" + steps +
'}';
}
}