package jetbrains.mps.execution.api.commands;
/*Generated by MPS */
import java.util.List;
import jetbrains.mps.internal.collections.runtime.ListSequence;
import java.util.ArrayList;
import jetbrains.mps.internal.collections.runtime.Sequence;
import jetbrains.mps.internal.collections.runtime.IWhereFilter;
import jetbrains.mps.internal.collections.runtime.IterableUtils;
public abstract class AbstractCommandPart implements CommandPart {
private final List<String> myCommand = ListSequence.fromList(new ArrayList<String>());
public AbstractCommandPart(List<String> list) {
addCommands(list);
}
public AbstractCommandPart(String... list) {
addCommands(list);
}
public AbstractCommandPart() {
}
@Override
public List<String> getCommandList() {
return myCommand;
}
protected final void addCommands(Iterable<String> list) {
ListSequence.fromList(myCommand).addSequence(Sequence.fromIterable(list).where(new IWhereFilter<String>() {
public boolean accept(String it) {
return (it != null && it.length() > 0);
}
}));
}
protected final void addCommands(String... list) {
addCommands(Sequence.fromArray(list));
}
@Override
public int getLength() {
return IterableUtils.join(ListSequence.fromList(myCommand), " ").length();
}
}