Browse Source

modify

master
Palin 5 years ago
parent
commit
25ba10ada5
  1. 6
      build.xml
  2. 4
      pom.xml
  3. 8
      src/main/java/com/fr/plugin/form/widget/conf/RHIframeMarkInCell.java
  4. 6
      src/main/java/com/fr/plugin/form/widget/conf/RHIframeMarkInForm.java
  5. 14
      src/main/java/com/fr/plugin/form/widget/core/RHIframe.java
  6. 29
      src/main/java/com/fr/plugin/form/widget/core/RHIframeAttr.java
  7. 9
      src/main/java/com/fr/plugin/form/widget/core/RHIframeSource.java
  8. 20
      src/main/java/com/fr/plugin/form/widget/core/TemplateSource.java
  9. 61
      src/main/java/com/fr/plugin/form/widget/core/URLSource.java
  10. 4
      src/main/java/com/fr/plugin/form/widget/ui/RHCellPane.java
  11. 6
      src/main/java/com/fr/plugin/form/widget/ui/RHFramePane.java
  12. 2
      src/main/java/com/fr/plugin/form/widget/ui/SourceRadioPane.java
  13. 5
      src/main/java/com/fr/plugin/form/widget/ui/TemplateSourcePane.java
  14. 6
      src/main/java/com/fr/plugin/form/widget/ui/URLSourcePane.java
  15. 18
      src/main/java/com/fr/plugin/form/widget/ui/XRHIframe.java

6
build.xml

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project basedir="." default="jar" name="plugin">
<!-- JDK路径,根据自己机器上实际位置修改-->
<property name="jdk.home" value="/Library/Java/JavaVirtualMachines/JDK1.8/Contents/Home"/>
<property name="jdk.home" value="C:\Program Files\Java\jdk1.8.0_66"/>
<property name="libs" value="${basedir}/lib"/>
<property name="publicLibs" value=""/>
@ -84,8 +84,8 @@
<param name="resources_from" value="${basedir}"/>
</antcall>
<antcall target="compile_javas">
<param name="source_jdk_version" value="1.6"/>
<param name="target_jdk_version" value="1.6"/>
<param name="source_jdk_version" value="1.8"/>
<param name="target_jdk_version" value="1.8"/>
<param name="compile_jdk_version" value="${jdk.home}"/>
<param name="compile_files" value="${basedir}/src"/>
</antcall>

4
pom.xml

@ -20,8 +20,8 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>6</source>
<target>6</target>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>

8
src/main/java/com/fr/plugin/form/widget/conf/RHIframeMarkInCell.java

@ -3,7 +3,7 @@ package com.fr.plugin.form.widget.conf;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.fun.impl.AbstractCellWidgetOptionProvider;
import com.fr.form.ui.Widget;
import com.fr.general.Inter;
import com.fanruan.api.design.DesignKit;
import com.fr.plugin.form.widget.core.RHIframe;
import com.fr.plugin.form.widget.ui.RHCellPane;
@ -12,12 +12,13 @@ import com.fr.plugin.form.widget.ui.RHCellPane;
*/
public class RHIframeMarkInCell extends AbstractCellWidgetOptionProvider {
@Override
public int currentAPILevel() {
return 1;
}
@Override
public Class<? extends Widget> classForWidget() {
public Class<? extends Widget> classForWidget() {
return RHIframe.class;
}
@ -28,9 +29,10 @@ public class RHIframeMarkInCell extends AbstractCellWidgetOptionProvider {
@Override
public String nameForWidget() {
return Inter.getLocText("Plugin-RH_Iframe_Name");
return DesignKit.i18nText("Plugin-RH_Iframe_Name");
}
@Override
public Class<? extends BasicBeanPane<? extends Widget>> appearanceForWidget() {
return RHCellPane.class;

6
src/main/java/com/fr/plugin/form/widget/conf/RHIframeMarkInForm.java

@ -2,7 +2,7 @@ package com.fr.plugin.form.widget.conf;
import com.fr.design.fun.impl.AbstractFormWidgetOptionProvider;
import com.fr.form.ui.Widget;
import com.fr.general.Inter;
import com.fanruan.api.design.DesignKit;
import com.fr.plugin.form.widget.core.RHIframe;
import com.fr.plugin.form.widget.ui.XRHIframe;
@ -10,7 +10,7 @@ import com.fr.plugin.form.widget.ui.XRHIframe;
* Created by richie on 15/12/2.
*/
public class RHIframeMarkInForm extends AbstractFormWidgetOptionProvider {
@Override
public int currentAPILevel() {
return 1;
}
@ -32,6 +32,6 @@ public class RHIframeMarkInForm extends AbstractFormWidgetOptionProvider {
@Override
public String nameForWidget() {
return Inter.getLocText("Plugin-RH_Iframe_Name");
return DesignKit.i18nText("Plugin-RH_Iframe_Name");
}
}

14
src/main/java/com/fr/plugin/form/widget/core/RHIframe.java

@ -2,17 +2,17 @@ package com.fr.plugin.form.widget.core;
import com.fr.form.ui.FieldEditor;
import com.fr.form.ui.Interactive;
import com.fr.general.xml.GeneralXMLTools;
import com.fanruan.api.xml.XmlKit;
import com.fr.intelli.record.Focus;
import com.fr.intelli.record.Original;
import com.fr.json.JSONArray;
import com.fr.json.JSONException;
import com.fanruan.api.err.JSONException;
import com.fr.json.JSONObject;
import com.fr.plugin.ExtraClassManager;
import com.fr.plugin.form.widget.monitor.RHFunctionProcessor;
import com.fr.record.analyzer.EnableMetrics;
import com.fr.script.Calculator;
import com.fr.stable.ArrayUtils;
import com.fanruan.api.util.ArrayKit;
import com.fr.stable.core.NodeVisitor;
import com.fr.stable.fun.FunctionProcessor;
import com.fr.stable.script.CalculatorProvider;
@ -103,13 +103,13 @@ public class RHIframe extends FieldEditor implements Interactive {
@Override
public String[] dependence(CalculatorProvider ca) {
if (attr == null) {
return ArrayUtils.EMPTY_STRING_ARRAY;
return ArrayKit.EMPTY_STRING_ARRAY;
}
return attr.dependence(ca);
}
@Override
public void readXML(XMLableReader reader) {
public void readXML( XMLableReader reader) {
super.readXML(reader);
if (reader.isChildNode()) {
String nodeName = reader.getTagName();
@ -117,7 +117,7 @@ public class RHIframe extends FieldEditor implements Interactive {
this.overflowX = reader.getAttrAsBoolean("scrollX", true);
this.overflowY = reader.getAttrAsBoolean("scrollY", true);
} else if (RHIframeAttr.XML_TAG.equals(nodeName)) {
this.attr = (RHIframeAttr) GeneralXMLTools.readXMLable(reader);
this.attr = (RHIframeAttr) XmlKit.readXMLable(reader);
}
}
}
@ -130,7 +130,7 @@ public class RHIframe extends FieldEditor implements Interactive {
writer.attr("scrollY", overflowY);
writer.end();
if (attr != null) {
GeneralXMLTools.writeXMLable(writer, attr, RHIframeAttr.XML_TAG);
XmlKit.writeXMLable(writer,attr, RHIframeAttr.XML_TAG);
}
}

29
src/main/java/com/fr/plugin/form/widget/core/RHIframeAttr.java

@ -1,15 +1,15 @@
package com.fr.plugin.form.widget.core;
import com.fr.base.ParameterMapNameSpace;
import com.fr.general.xml.GeneralXMLTools;
import com.fanruan.api.xml.XmlKit;
import com.fr.json.JSONArray;
import com.fr.json.JSONException;
import com.fanruan.api.err.JSONException;
import com.fr.json.JSONObject;
import com.fr.script.Calculator;
import com.fr.stable.ArrayUtils;
import com.fanruan.api.util.ArrayKit;
import com.fr.stable.DependenceProvider;
import com.fr.stable.ParameterProvider;
import com.fr.stable.UtilEvalError;
import com.fanruan.api.err.UtilEvalError;
import com.fr.stable.script.CalculatorProvider;
import com.fr.stable.script.NameSpace;
import com.fr.stable.xml.StableXMLUtils;
@ -53,7 +53,7 @@ public class RHIframeAttr implements XMLable, DependenceProvider {
@Override
public String[] dependence(CalculatorProvider ca) {
if (source == null) {
return ArrayUtils.EMPTY_STRING_ARRAY;
return ArrayKit.EMPTY_STRING_ARRAY;
}
List<String> data = new ArrayList<String>();
data.addAll(Arrays.asList(source.dependence(ca)));
@ -69,7 +69,7 @@ public class RHIframeAttr implements XMLable, DependenceProvider {
if (source != null) {
jo.put("src", source.getCalculatedUrl(c, req));
String[] dependence = dependence(c);
if (!ArrayUtils.isEmpty(dependence)) {
if (!ArrayKit.isEmpty(dependence)) {
jo.put("dependence", dependence);
jo.put("valueDependence", dependence);
}
@ -82,18 +82,25 @@ public class RHIframeAttr implements XMLable, DependenceProvider {
c.pushNameSpace(ns);
if (source != null) {
source.mixCalculatedParameters(c, ja, parameters);
try {
source.mixCalculatedParameters(c, ja, parameters);
} catch (Exception e) {
}
}
}
}
@Override
public void readXML(XMLableReader reader) {
if (reader.isChildNode()) {
String tmpName = reader.getTagName();
if (ParameterProvider.ARRAY_XML_TAG.equals(tmpName)) {//读取Parameters.
if (ParameterProvider.ARRAY_XML_TAG.equals(tmpName)) {
//读取Parameters.
final List<ParameterProvider> tmpParameterList = new ArrayList<ParameterProvider>();
reader.readXMLObject(new XMLReadable() {
@Override
public void readXML(XMLableReader reader) {
if (ParameterProvider.XML_TAG.equals(reader.getTagName())) {
tmpParameterList.add(StableXMLUtils.readParameter(reader));
@ -106,7 +113,7 @@ public class RHIframeAttr implements XMLable, DependenceProvider {
this.parameters = tmpParameterList.toArray(new ParameterProvider[tmpParameterList.size()]);
}
} else if (tmpName.equals(RHIframeSource.XML_TAG)) {
this.source = (RHIframeSource) GeneralXMLTools.readXMLable(reader);
this.source = (RHIframeSource) XmlKit.readXMLable(reader);
}
}
}
@ -114,7 +121,7 @@ public class RHIframeAttr implements XMLable, DependenceProvider {
@Override
public void writeXML(XMLPrintWriter writer) {
if (source != null) {
GeneralXMLTools.writeXMLable(writer, source, RHIframeSource.XML_TAG);
XmlKit.writeXMLable(writer, source, RHIframeSource.XML_TAG);
}
StableXMLUtils.writeParameters(writer, parameters);
}

9
src/main/java/com/fr/plugin/form/widget/core/RHIframeSource.java

@ -1,15 +1,14 @@
package com.fr.plugin.form.widget.core;
import com.fr.json.JSONArray;
import com.fr.json.JSONException;
import com.fr.json.JSONObject;
import com.fr.script.Calculator;
import com.fanruan.api.err.JSONException;
import com.fr.stable.DependenceProvider;
import com.fr.stable.ParameterProvider;
import com.fr.stable.UtilEvalError;
import com.fanruan.api.err.UtilEvalError;
import com.fr.stable.xml.XMLPrintWriter;
import com.fr.stable.xml.XMLable;
import com.fr.stable.xml.XMLableReader;
import com.fr.script.Calculator;
import javax.servlet.http.HttpServletRequest;
@ -20,7 +19,7 @@ public abstract class RHIframeSource implements XMLable, DependenceProvider {
public static final String XML_TAG = "RHIframeSource";
@Override
public String toString() {
return "source";
}

20
src/main/java/com/fr/plugin/form/widget/core/TemplateSource.java

@ -1,21 +1,18 @@
package com.fr.plugin.form.widget.core;
import com.fanruan.api.err.UtilEvalError;
import com.fr.base.Formula;
import com.fr.base.Parameter;
import com.fr.base.ParameterHelper;
import com.fr.base.TemplateUtils;
import com.fanruan.api.util.RenderKit;
import com.fr.data.NetworkHelper;
import com.fr.general.FArray;
import com.fr.json.JSONArray;
import com.fr.json.JSONException;
import com.fanruan.api.err.JSONException;
import com.fr.json.JSONObject;
import com.fr.plugin.form.widget.URLUtils;
import com.fr.script.Calculator;
import com.fr.stable.CodeUtils;
import com.fr.stable.ParameterProvider;
import com.fr.stable.ProductConstants;
import com.fr.stable.StringUtils;
import com.fr.stable.UtilEvalError;
import com.fr.stable.*;
import com.fr.stable.js.WidgetName;
import com.fr.stable.script.CalculatorProvider;
import com.fr.stable.xml.XMLPrintWriter;
@ -54,7 +51,7 @@ public class TemplateSource extends RHIframeSource {
@Override
public String getCalculatedUrl(Calculator calculator, HttpServletRequest req) {
try {
String realPath = TemplateUtils.render(path, calculator);
String realPath = RenderKit.render(path, calculator);
List<NameValuePair> pairs = URLUtils.parse("__emb__=" + realPath);
List<NameValuePair> extraPairs = new ArrayList<NameValuePair>();
for (NameValuePair pair : pairs) {
@ -128,8 +125,11 @@ public class TemplateSource extends RHIframeSource {
String key = parameter.getName();
Object obj = parameter.getValue();
if (obj instanceof Formula) {
String content = ((Formula) obj).getContent();
obj = c.evalValue(content);
try{
String content = ((Formula) obj).getContent();
obj = c.evalValue(content);
}catch (Exception e) {
}
}
if (obj instanceof String) {
jo.put(parameter.getName(), obj);

61
src/main/java/com/fr/plugin/form/widget/core/URLSource.java

@ -3,23 +3,22 @@ package com.fr.plugin.form.widget.core;
import com.fr.base.Formula;
import com.fr.base.Parameter;
import com.fr.base.ParameterHelper;
import com.fr.base.TemplateUtils;
import com.fanruan.api.util.RenderKit;
import com.fr.general.FArray;
import com.fr.general.FRLogger;
import com.fr.general.GeneralUtils;
import com.fr.general.Inter;
import com.fr.json.JSONArray;
import com.fr.json.JSONException;
import com.fanruan.api.err.JSONException;
import com.fr.json.JSONObject;
import com.fr.script.Calculator;
import com.fr.stable.CodeUtils;
import com.fanruan.api.util.CodeKit;
import com.fr.stable.ParameterProvider;
import com.fr.stable.StableUtils;
import com.fr.stable.UtilEvalError;
import com.fanruan.api.cal.FormulaKit;
import com.fanruan.api.err.UtilEvalError;
import com.fr.stable.js.WidgetName;
import com.fr.stable.script.CalculatorProvider;
import com.fr.stable.xml.XMLPrintWriter;
import com.fr.stable.xml.XMLableReader;
import com.fanruan.api.util.GeneralKit;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
@ -51,15 +50,15 @@ public class URLSource extends RHIframeSource {
@Override
public String getCalculatedUrl(Calculator calculator, HttpServletRequest req) {
String result = null;
if (StableUtils.canBeFormula(url)) {
if (FormulaKit.checkFormulaContent(url)) {
try {
result = GeneralUtils.objectToString(calculator.eval(new Formula(url)));
} catch (UtilEvalError u) {
result = GeneralKit.objectToString(calculator.evalValue(new Formula(url)));
} catch (Exception u) {
FRLogger.getLogger().error(u.getMessage(), u);
}
} else {
try {
result = TemplateUtils.render(url, calculator);
result = RenderKit.render(url, calculator);
} catch (Exception e) {
FRLogger.getLogger().error(e.getMessage(), e);
}
@ -82,31 +81,33 @@ public class URLSource extends RHIframeSource {
}
@Override
public void mixCalculatedParameters(Calculator c, JSONArray ja, ParameterProvider[] parameters) throws JSONException, UtilEvalError {
public void mixCalculatedParameters(Calculator c, JSONArray ja, ParameterProvider[] parameters) throws JSONException, UtilEvalError {
for (int i = 0; i < (parameters == null ? 0 : parameters.length); i++) {
Object obj = parameters[i].getValue();
if (obj instanceof Formula) {
String content = ((Formula) obj).getContent();
obj = c.evalValue(content);
try {
String content = ((Formula) obj).getContent();
obj = c.evalValue(content);
} catch (Exception e) {
}
JSONObject jo = JSONObject.create();
if (obj instanceof String) {
obj = CodeKit.passwordDecode((String) obj);
jo.put(parameters[i].getName(), obj);
} else if (obj instanceof FArray) {
obj = ((FArray) obj).cjkEncode();
jo.put(parameters[i].getName(), obj);
} else if (obj instanceof WidgetName) {
jo.put("widgetName", ((WidgetName) obj).getName());
} else {
// 还可以是数字啊什么的
jo.put(parameters[i].getName(), obj);
}
ja.put(jo);
}
JSONObject jo = JSONObject.create();
if (obj instanceof String) {
obj = CodeUtils.cjkEncode((String) obj);
jo.put(parameters[i].getName(), obj);
} else if (obj instanceof FArray) {
obj = ((FArray) obj).cjkEncode();
jo.put(parameters[i].getName(), obj);
} else if (obj instanceof WidgetName) {
jo.put("widgetName", ((WidgetName) obj).getName());
} else {
// 还可以是数字啊什么的
jo.put(parameters[i].getName(), obj);
}
ja.put(jo);
}
}
@Override
public String getSourceType() {
return "url";

4
src/main/java/com/fr/plugin/form/widget/ui/RHCellPane.java

@ -2,7 +2,7 @@ package com.fr.plugin.form.widget.ui;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.widget.ui.AbstractDataModify;
import com.fr.general.Inter;
import com.fanruan.api.design.DesignKit;
import com.fr.plugin.form.widget.core.RHIframe;
import java.awt.*;
@ -37,6 +37,6 @@ public class RHCellPane extends AbstractDataModify<RHIframe> {
@Override
protected String title4PopupWindow() {
return Inter.getLocText("Plugin-RH_Iframe_Name");
return DesignKit.i18nText("Plugin-RH_Iframe_Name");
}
}

6
src/main/java/com/fr/plugin/form/widget/ui/RHFramePane.java

@ -1,10 +1,10 @@
package com.fr.plugin.form.widget.ui;
import com.fr.design.dialog.BasicPane;
import com.fr.design.gui.frpane.UIRadioPane;
import com.fanruan.api.design.ui.component.UIRadioPane;
import com.fr.design.gui.itableeditorpane.ParameterTableModel;
import com.fr.design.gui.itableeditorpane.UITableEditorPane;
import com.fr.general.Inter;
import com.fanruan.api.design.DesignKit;
import com.fr.plugin.form.widget.core.RHIframeAttr;
import com.fr.plugin.form.widget.core.RHIframeSource;
import com.fr.stable.ParameterProvider;
@ -21,7 +21,7 @@ public class RHFramePane extends BasicPane {
@Override
protected String title4PopupWindow() {
return Inter.getLocText("Plugin-RH_Iframe_Value");
return DesignKit.i18nText("Plugin-RH_Iframe_Value");
}
public RHFramePane() {

2
src/main/java/com/fr/plugin/form/widget/ui/SourceRadioPane.java

@ -1,7 +1,7 @@
package com.fr.plugin.form.widget.ui;
import com.fr.design.beans.FurtherBasicBeanPane;
import com.fr.design.gui.frpane.UIRadioPane;
import com.fanruan.api.design.ui.component.UIRadioPane;
import com.fr.plugin.form.widget.core.RHIframeSource;
import java.util.ArrayList;

5
src/main/java/com/fr/plugin/form/widget/ui/TemplateSourcePane.java

@ -3,8 +3,8 @@ package com.fr.plugin.form.widget.ui;
import com.fr.design.beans.FurtherBasicBeanPane;
import com.fr.design.dialog.BasicDialog;
import com.fr.design.dialog.DialogActionAdapter;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.itextfield.UITextField;
import com.fanruan.api.design.ui.component.UIButton;
import com.fanruan.api.design.ui.component.UITextField;
import com.fr.design.gui.itree.filetree.ReportletPane;
import com.fr.plugin.form.widget.core.TemplateSource;
@ -39,6 +39,7 @@ public class TemplateSourcePane extends FurtherBasicBeanPane<TemplateSource> {
BasicDialog reportletDialog = reportletPane.showWindow(SwingUtilities.getWindowAncestor(TemplateSourcePane.this));
reportletDialog.addDialogActionListener(new DialogActionAdapter() {
@Override
public void doOk() {
textField.setText(reportletPane.getSelectedReportletPath());
}

6
src/main/java/com/fr/plugin/form/widget/ui/URLSourcePane.java

@ -1,7 +1,7 @@
package com.fr.plugin.form.widget.ui;
import com.fr.design.beans.FurtherBasicBeanPane;
import com.fr.design.formula.TinyFormulaPane;
import com.fanruan.api.design.ui.component.formula.UIFormulaTextField;
import com.fr.plugin.form.widget.core.URLSource;
import java.awt.*;
@ -11,11 +11,11 @@ import java.awt.*;
*/
public class URLSourcePane extends FurtherBasicBeanPane<URLSource> {
private TinyFormulaPane formulaPane;
private UIFormulaTextField formulaPane;
public URLSourcePane() {
setLayout(new BorderLayout());
formulaPane = new TinyFormulaPane();
formulaPane = new UIFormulaTextField();
add(formulaPane, BorderLayout.CENTER);
}

18
src/main/java/com/fr/plugin/form/widget/ui/XRHIframe.java

@ -3,16 +3,16 @@ package com.fr.plugin.form.widget.ui;
import com.fr.design.designer.creator.CRPropertyDescriptor;
import com.fr.design.designer.creator.XWidgetCreator;
import com.fr.design.form.util.XCreatorConstants;
import com.fr.design.gui.itextfield.UITextField;
import com.fanruan.api.design.ui.component.UITextField;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.general.Inter;
import com.fanruan.api.design.DesignKit;
import com.fr.plugin.form.widget.core.RHIframe;
import com.fr.plugin.form.widget.core.RHIframeAttr;
import com.fr.plugin.form.widget.core.RHIframeSource;
import com.fr.plugin.form.widget.ui.editor.RHIframeModelEditor;
import com.fr.plugin.form.widget.ui.render.RHIframeModelRenderer;
import com.fr.stable.ArrayUtils;
import com.fr.stable.StringUtils;
import com.fanruan.api.util.ArrayKit;
import com.fanruan.api.util.StringKit;
import javax.swing.*;
import java.awt.*;
@ -31,16 +31,16 @@ public class XRHIframe extends XWidgetCreator {
@Override
public CRPropertyDescriptor[] supportedDescriptor() throws IntrospectionException {
return ArrayUtils.addAll(super.supportedDescriptor(), new CRPropertyDescriptor[]{
return ArrayKit.addAll(super.supportedDescriptor(), new CRPropertyDescriptor[]{
new CRPropertyDescriptor("attr", this.toData().getClass())
.setI18NName(Inter.getLocText("Plugin-RH_Iframe_Value"))
.setI18NName(DesignKit.i18nText("Plugin-RH_Iframe_Value"))
.setEditorClass(RHIframeModelEditor.class)
.setRendererClass(RHIframeModelRenderer.class),
new CRPropertyDescriptor("overflowX", this.data.getClass()).setI18NName(
Inter.getLocText("Plugin-Preference_Horizontal_Scroll_Bar_Visible")).putKeyValue(
DesignKit.i18nText("Plugin-Preference_Horizontal_Scroll_Bar_Visible")).putKeyValue(
XCreatorConstants.PROPERTY_CATEGORY, "Advanced"),
new CRPropertyDescriptor("overflowY", this.data.getClass()).setI18NName(
Inter.getLocText("Plugin-Preference_Vertical_Scroll_Bar_Visible")).putKeyValue(
DesignKit.i18nText("Plugin-Preference_Vertical_Scroll_Bar_Visible")).putKeyValue(
XCreatorConstants.PROPERTY_CATEGORY, "Plugin-RH_Iframe_Advanced")});
}
@ -68,7 +68,7 @@ public class XRHIframe extends XWidgetCreator {
}
}
}
return StringUtils.EMPTY;
return StringKit.EMPTY;
}
@Override

Loading…
Cancel
Save