package miage.shell.command;
import java.io.PrintStream;
import java.util.Locale;
import miage.shell.Context;
import miage.shell.command.helpers.TranslateHelper;
import miage.shell.context.VolatileContext;
/**
*
* @author Schwartz Michaƫl <m.schwartz@epokmedia.fr>
*/
public class LanguageCommand extends AbstractCommand implements ContextualCommand, LocalizedCommand {
private final TranslateHelper translateHelper;
private Context context;
public LanguageCommand() {
this(VolatileContext.CONTEXT);
}
public LanguageCommand(Context context) {
this.context = context;
this.translateHelper = new TranslateHelper(this);
}
@Override
public String getName() {
return "language";
}
@Override
public String getUsage() {
return translateHelper.translate("usage");
}
@Override
public String getShortDescription() {
return translateHelper.translate("desc");
}
@Override
public Context getContext() {
return context;
}
@Override
public void setContext(Context context) {
this.context = context;
}
@Override
protected void execute(PrintStream out, PrintStream err) {
if (dataArguments.isEmpty()) {
out.println(translateHelper.getLocale().getDisplayLanguage());
} else {
Locale newLocale = new Locale(dataArguments.getFirst());
this.translateHelper.setLocale(newLocale);
}
}
}