앞서 구성한 함수를 활용하여 계산 , 논리적인 판별을 하기 위한 모듈을 구성하기 위해서
가장 기본적인 내용을 담은 class를 구성 합니다.
interface 구조도 가능하나, 해당 class 가 하는 일이 있기 때문에 abstract class로 구성합니다.
public abstract class SyntaxBaseDTO {
protected String syntax = null;
private MAIN_TYPE mainType = null;
private int subType = -1;
private boolean isConst = false;
protected Set<String> specialKeySet = null;
protected Map<String,Map<String,String>> variableMap = null;
public enum MAIN_TYPE {
BRACE_TYPE(1),
LOGIC_TYPE(2),
COMPARE_TYPE(3),
CALCULATION_TYPE(4);
private int value = -1;
private MAIN_TYPE(int value) {
this.value = value;
}
public int getValue() {
return this.value;
}
}
public SyntaxBaseDTO() {
}
public SyntaxBaseDTO( String syntax ) {
this.syntax = syntax;
initResource();
}
private void initResource() {
if ( CommonBaseUtility.isEmptyValue(syntax) ) {
return;
}
if (syntax.toLowerCase().matches("true|false")) {
isConst = true;
mainType = MAIN_TYPE.COMPARE_TYPE;
}
isConst = CommonBaseUtility.isNumericValue(syntax);
mainType = MAIN_TYPE.CALCULATION_TYPE;
}
public boolean isConstValue() {
return isConst;
}
public abstract boolean parseCurrentSyntaxValue();
public abstract String getValue(Map<String,String> transMap);
public abstract boolean getLogicalValue(Map<String,String> transMap);
/**
* @return the syntax
*/
public String getSyntax() {
return syntax;
}
/**
* @param syntax the syntax to set
*/
public void setSyntax(String syntax) {
this.syntax = syntax;
}
/**
* @return the mainType
*/
public MAIN_TYPE getMainType() {
return mainType;
}
/**
* @param mainType the mainType to set
*/
public void setMainType(MAIN_TYPE mainType) {
this.mainType = mainType;
}
/**
* @return the isConst
*/
public boolean isConst() {
return isConst;
}
/**
* @param isConst the isConst to set
*/
public void setConst(boolean isConst) {
this.isConst = isConst;
}
/**
* @return the subType
*/
public int getSubType() {
return subType;
}
/**
* @param subType the subType to set
*/
public void setSubType(int subType) {
this.subType = subType;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
댓글 없음:
댓글 쓰기