package org.getopt.pcl5.HPGLInterpreter.cmd;
import java.io.IOException;
import java.io.InputStream;
import org.getopt.pcl5.PrinterState;
public class CmdEscCommand extends EscCommandHPGL {
public CmdEscCommand(PrinterState printerState) {
super(printerState);
}
char _cmd;
protected int readNum(InputStream in) throws IOException {
char c = (char) in.read();
String number = "";
while (c == '+' || c == '-' || Character.isDefined(c))
number += c;
// TODO: state class variable, but I can't return 2 values
_cmd = c;
return Integer.parseInt(number);
}
public boolean execute(char cmd, InputStream in) throws IOException {
if (cmd == '%') {
int param = readNum(in);
if ((param == -12345) && (_cmd == 'X')) {
// _printerState.reset();
_printerState.setActiveLanguage(PrinterState.Language.PJL);
return true;
} else if (_cmd == 'A') {
_printerState.setActiveLanguage(PrinterState.Language.PCL5);
return true;
}
}
return false;
}
}