package biz.karms.sinkit.ejb.protostream.marshallers;
import biz.karms.sinkit.ejb.protostream.Action;
import org.infinispan.protostream.EnumMarshaller;
/**
* @author Michal Karm Babacek
*/
public class ActionMarshaller implements EnumMarshaller<Action> {
@Override
public Class<? extends Action> getJavaClass() {
return Action.class;
}
@Override
public String getTypeName() {
return "sinkitprotobuf.Action";
}
@Override
public Action decode(int enumValue) {
switch (enumValue) {
case 0:
return Action.BLACK;
case 1:
return Action.WHITE;
case 2:
return Action.LOG;
}
return null; // unknown value
}
@Override
public int encode(Action action) {
switch (action) {
case BLACK:
return 0;
case WHITE:
return 1;
case LOG:
return 2;
default:
throw new IllegalArgumentException("Unexpected Action value : " + action);
}
}
}