package jalview.ws2.params; import java.util.ArrayList; import java.util.Collections; import java.util.List; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import jalview.ws.params.ArgumentI; /** * A wrapper of {@link ArgumentBean} list that can be marshaled or unmarshalled. * Used by {@link SimpleParamDatastore} to read and store parameters in a file. * * @see ArgumentBean * @see SimpleParamDatastore * @author mmwarowny */ @XmlRootElement(name = "arguments") class ArgumentBeanList { @XmlElement(name = "argument") public List arguments = Collections.emptyList(); ArgumentBeanList() { } ArgumentBeanList(List arguments) { this.arguments = arguments; } static ArgumentBeanList fromList(List list) { var args = new ArrayList(); for (var item : list) args.add(item instanceof ArgumentBean ? (ArgumentBean) item : new ArgumentBean(item)); return new ArgumentBeanList(args); } @Override public String toString() { var elements = new String[arguments.size()]; for (int i = 0; i < arguments.size(); i++) elements[i] = arguments.toString(); return "[" + String.join(", ", elements) + "]"; } }