package de.kroesch.clt.internal;
import java.util.List;
import java.util.Properties;
import de.kroesch.clt.Command;
import de.kroesch.clt.Environment;
import de.kroesch.clt.HasArguments;
import de.kroesch.clt.InternalEnvironment;
/**
* Get the value of a variable.
*
* @author karsten
*
*/
public class Get implements Command, HasArguments {
private Environment env;
private List<String> args;
public void run() {
if (! args.isEmpty()) {
write(args.get(0));
return;
}
// List variables
Properties props = ((InternalEnvironment)env).getProperties();
for (Object var : props.keySet()) {
write(var.toString());
}
}
private void write(String key) {
String value = env.get(key);
env.writer().printf("%s: %s\n", key, value);
}
public void setEnvironment(Environment env) {
this.env = env;
}
public String toString() {
return "get " + args;
}
public void setArguments(List<String> args) {
this.args = args;
}
}