From 22749058248bcb083a1739aeb3b80ba8b6f62d25 Mon Sep 17 00:00:00 2001 From: zhourui Date: Mon, 31 Aug 2020 17:51:47 +0800 Subject: [PATCH] bind --- .../service/processing/SerialBuilder.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/SerialBuilder.java b/o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/SerialBuilder.java index b8628207b6..c90e6e53c8 100644 --- a/o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/SerialBuilder.java +++ b/o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/SerialBuilder.java @@ -72,7 +72,7 @@ public class SerialBuilder { }.getType(); public String concrete(AeiObjects aeiObjects) throws Exception { - StringBuffer buffer = new StringBuffer(""); + StringBuilder buffer = new StringBuilder(""); String data = process.getSerialTexture(); if (StringUtils.isNotEmpty(data)) { List list = XGsonBuilder.instance().fromJson(data, collectionType); @@ -84,8 +84,7 @@ public class SerialBuilder { for (SerialTextureItem o : list) { if ((!StringUtils.equalsIgnoreCase(o.getKey(), "number")) && StringUtils.isNotEmpty(o.getScript())) { - Object v = ScriptFactory.scriptEngine.eval(ScriptFactory.functionalization(o.getScript()), - scriptContext); + Object v = ScriptFactory.scriptEngine.eval(functionBind(o), scriptContext); itemResults.add(v); } else { itemResults.add(""); @@ -94,8 +93,7 @@ public class SerialBuilder { for (int i = 0; i < list.size(); i++) { SerialTextureItem o = list.get(i); if ((StringUtils.equalsIgnoreCase(o.getKey(), "number")) && StringUtils.isNotEmpty(o.getScript())) { - Object v = ScriptFactory.scriptEngine.eval(ScriptFactory.functionalization(o.getScript()), - scriptContext); + Object v = ScriptFactory.scriptEngine.eval(functionBind(o), scriptContext); itemResults.set(i, v); } } @@ -108,6 +106,14 @@ public class SerialBuilder { return buffer.toString(); } + private String functionBind(SerialTextureItem o) { + StringBuilder sb = new StringBuilder(); + sb.append("(function(){").append(System.lineSeparator()); + sb.append(o.getScript()).append(System.lineSeparator()); + sb.append("}).apply(bind);"); + return sb.toString(); + } + public class Serial { public String text(String str) { return str; -- GitLab