@Override
public Result execute(Session session) throws StatementException {
Cache<Object, Object> cache = session.getCache(keyData.getCacheName());
Object key = keyData.key;
Codec codec = session.getCodec();
if (options.size() > 0) {
for (Option option : options) {
switch (option.toEnum(Options.class)) {
case CODEC: {
if (option.getParameter() == null) {
throw log.missingOptionParameter(option.getName());
} else {
codec = session.getCodec(option.getParameter());
}
}
}
}
}
Object value = cache.get(codec.encodeKey(key));
if (value == null) {
return new StringResult("null");
} else {
Object decoded = codec.decodeValue(value);
if (decoded instanceof String) {
return new StringResult((String) decoded);
} else if (decoded.getClass().isPrimitive()) {
return new StringResult(decoded.toString());
} else {