변환 표현식 내에 true, false가 있을 경우, warning 출력 부분 제거

This commit is contained in:
curry772
2026-08-12 17:57:42 +09:00
parent 051305ac55
commit 90ccf59b25
@@ -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 {