throw new ObjectPropertyException("Language not specified for script validator!");
}
logger.trace("lang: " + lang);
logger.debug("requesting script engine for: " + lang);
ScriptEngine engine = scriptEngineManager.getEngineByName(lang);
logger.trace("engine: " + engine);
if(engine == null) {
logger.warn("No script engine found for: " + lang);
throw new ObjectPropertyException("No script engine available for language: " + lang);
}
// bind useful variables
logger.debug("binding variables");
// engine.put("object", obj);
// engine.put("creature", attr.getv);
// binding value
// if("integer".equals(prop.getType())) {
// logger.debug("binding value as integer");
// engine.put("value", new Integer(value));
// }
// else if("string".equals(attr.getType())) {
// logger.debug("binding value as string");
// engine.put("value", value);
// }
// else if("float".equals(attr.getType()))
// {
// logger.debug("binding value as float");
// engine.put("value", new Float(value));
// }
// else if("boolean".equals(attr.getType()))
// {
// logger.debug("binding value as boolean");
// engine.put("value", new Boolean(value));
// }
try {
logger.debug("evaluating script");
Object ret = engine.eval(prop.getValidatorBody());
logger.trace("ret: " + ret);
result.setValid(Boolean.parseBoolean(String.valueOf(ret)));
logger.trace("isValid: " + result.isValid());
result.setReason("");