package com.qianwen.core.tool.script.engine.ognl; import java.util.HashMap; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import ognl.Ognl; import org.apache.commons.codec.digest.DigestUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.qianwen.core.tool.script.engine.ExecuteResult; import com.qianwen.core.tool.script.engine.ListenerSupportEngine; import com.qianwen.core.tool.script.engine.ScriptContext; /* loaded from: blade-core-tool-9.3.0.0-SNAPSHOT.jar:org/springblade/core/tool/script/engine/ognl/OgnlEngine.class */ public class OgnlEngine extends ListenerSupportEngine { protected final Logger logger = LoggerFactory.getLogger(getClass()); protected final Map cache = new ConcurrentHashMap(); @Override // org.springblade.core.tool.script.engine.DynamicScriptEngine public boolean compiled(String id) { return this.cache.containsKey(id); } @Override // org.springblade.core.tool.script.engine.DynamicScriptEngine public ScriptContext getContext(String id) { return this.cache.get(id); } @Override // org.springblade.core.tool.script.engine.DynamicScriptEngine public boolean remove(String id) { return this.cache.remove(id) != null; } @Override // org.springblade.core.tool.script.engine.DynamicScriptEngine public void init(String... contents) throws Exception { } @Override // org.springblade.core.tool.script.engine.DynamicScriptEngine public ExecuteResult execute(String id) { return execute(id, new HashMap()); } @Override public boolean compile(String id, String code) throws Exception { if (this.logger.isDebugEnabled()) { this.logger.debug("compile Ognl {} : {}", id, code); } this.cache.put(id, new OgnlScriptContext(id, DigestUtils.md5Hex(code), Ognl.parseExpression(code))); return false; } @Override // org.springblade.core.tool.script.engine.DynamicScriptEngine public ExecuteResult execute(String id, Map param) { if (this.logger.isDebugEnabled()) { this.logger.debug("execute Ognl {} : {}", id, param); } ExecuteResult result = new ExecuteResult(); long start = System.currentTimeMillis(); OgnlScriptContext scriptContext = this.cache.get(id); try { if (scriptContext != null) { doListenerBefore(scriptContext); scriptContext = this.cache.get(id); Map param2 = new HashMap<>(param); param2.putAll(getGlobalVariable()); Object obj = Ognl.getValue(scriptContext.getScript(), param2, param2); result.setSuccess(true); result.setResult(obj); } else { result.setSuccess(false); result.setResult(null); result.setMessage(String.format("Ognl: %s not found!", id)); } long end = System.currentTimeMillis(); result.setUseTime(end - start); } catch (Exception e) { this.logger.error("execute SpEL error", e); result.setException(e); } doListenerAfter(scriptContext, result); return result; } /* JADX INFO: Access modifiers changed from: package-private */ /* loaded from: blade-core-tool-9.3.0.0-SNAPSHOT.jar:org/springblade/core/tool/script/engine/ognl/OgnlEngine$OgnlScriptContext.class */ public class OgnlScriptContext extends ScriptContext { private Object script; public OgnlScriptContext(String id, String md5, Object script) { super(id, md5); this.script = script; } public Object getScript() { return this.script; } } }