package klik.server.x10;
import klik.shared.constants.X10;
import klik.shared.constants.X10.Function;
import x10.Command;
/**
* Utility class to connect to the Java X10 Project
* @author raido
*/
public class TJX10P {
private TJX10P() {
}
/**
* Translates UnitEventDto to the Java X10 Project Command object
* @param ev event
* @return Command
*/
public static Command createCommand(Function function, String address, int value) {
byte func = createFunction(function);
if (function == Function.BRIGHT ||
function == Function.DIM) {
return new Command(address, func, value);
}
return new Command(address, func);
}
/**
* Translates function from one "language" to another
* @param function enum
* @return function byte suitable for sending to the network
*/
private static byte createFunction(X10.Function function) {
switch (function) {
case ON:
return Command.ON;
case OFF:
return Command.OFF;
case BRIGHT:
return Command.BRIGHT;
case DIM:
return Command.DIM;
case ALL_LIGHTS_OFF:
return Command.ALL_LIGHTS_OFF;
case ALL_LIGHTS_ON:
return Command.ALL_LIGHTS_ON;
case ALL_UNITS_OFF:
return Command.ALL_UNITS_OFF;
default:
// this should never happen
throw new RuntimeException("Illegal function " + function + "!");
}
}
}