in fastmodel-parser/src/main/java/com/aliyun/fastmodel/parser/visitor/TableVisitor.java [414:449]
private TableDetailType getDetailType(TableTypeContext typeContext) {
if (typeContext == null) {
return null;
}
Token type = typeContext.type;
switch (type.getType()) {
case FastModelLexer.KW_FACT:
FactDetailTypeContext factDetailTypeContext = typeContext.factDetailType();
if (factDetailTypeContext == null) {
return TableDetailType.TRANSACTION_FACT;
} else {
return TableDetailType.getByCode(factDetailTypeContext.getText(), TableType.FACT);
}
case FastModelLexer.KW_DIM:
DimDetailTypeContext dimDetailTypeContext = typeContext.dimDetailType();
if (dimDetailTypeContext == null) {
return TableDetailType.NORMAL_DIM;
} else {
return TableDetailType.getByCode(dimDetailTypeContext.getText(), TableType.DIM);
}
case FastModelLexer.KW_CODE:
return TableDetailType.CODE;
case FastModelLexer.KW_DWS:
DwDetailTypeContext dwDetailTypeContext = typeContext.dwDetailType();
if (dwDetailTypeContext == null) {
return TableDetailType.DWS;
}
return TableDetailType.ADVANCED_DWS;
case FastModelLexer.KW_ADS:
return TableDetailType.ADS;
case FastModelLexer.KW_ODS:
return TableDetailType.ODS;
default:
throw new IllegalArgumentException("can't find the DetailType:" + type.getType());
}
}