변환 표현식 내에 true, false가 있을 경우, warning 출력 부분 제거
This commit is contained in:
@@ -1,6 +1,11 @@
|
||||
package com.eactive.eai.transformer.engine;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.nfunk.jep.JEP;
|
||||
import org.nfunk.jep.function.PostfixMathCommand;
|
||||
@@ -26,6 +31,14 @@ public class Parser implements Serializable {
|
||||
|
||||
private static Logger logger = Logger.getLogger("transformer");
|
||||
|
||||
/**
|
||||
* 표현식의 변수가 아니라 파서가 미리 심볼테이블에 등록해 두는 예약 심볼.
|
||||
* getSymbols() 결과에서 제외하지 않으면 Transformer 가 이를 소스전문의 항목경로로 보고
|
||||
* 조회를 시도해 "레이아웃항목이 존재하지 않음" 경고가 매 변환마다 발생한다.
|
||||
*/
|
||||
private static final Set<String> RESERVED_SYMBOLS =
|
||||
Collections.unmodifiableSet(new HashSet<>(Arrays.asList("true", "false")));
|
||||
|
||||
private transient JEP jep = new JEP(); // Create a new parser
|
||||
|
||||
public Parser() {
|
||||
@@ -102,9 +115,9 @@ public class Parser implements Serializable {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public String[] getSymbols() {
|
||||
String[] symbols = new String[getJep().getSymbolTable().size()];
|
||||
symbols = (String[])getJep().getSymbolTable().keySet().toArray(new String[symbols.length]);
|
||||
return symbols;
|
||||
Set<String> symbols = new LinkedHashSet<>(getJep().getSymbolTable().keySet());
|
||||
symbols.removeAll(RESERVED_SYMBOLS);
|
||||
return symbols.toArray(new String[symbols.size()]);
|
||||
}
|
||||
|
||||
private void addGenericFunctions() throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user