in fastmodel-parser/src/main/java/com/aliyun/fastmodel/parser/visitor/BatchVisitor.java [73:119]
public Node visitCreateBatchIndicator(CreateBatchIndicatorContext ctx) {
List<Property> properties = ImmutableList.of();
if (ctx.setProperties() != null) {
properties = visit(ctx.setProperties().tableProperties().keyValueProperty(), Property.class);
}
List<AbstractBatchElement> visit = visit(ctx.batchElement(), AbstractBatchElement.class);
List<IndicatorDefine> indicatorDefine = new ArrayList<>();
DimTableElement dimTableElement = null;
DefaultAdjunct defaultAdjunct = null;
FromTableElement fromTable = null;
TimePeriodElement timePeriod = null;
DimPathElement dimPathElement = null;
DateField dateField = null;
for (AbstractBatchElement element : visit) {
if (element.getClass() == IndicatorDefine.class) {
indicatorDefine.add((IndicatorDefine)element);
continue;
}
if (element.getClass() == DimTableElement.class) {
dimTableElement = (DimTableElement)element;
continue;
}
if (element.getClass() == DefaultAdjunct.class) {
defaultAdjunct = (DefaultAdjunct)element;
continue;
}
if (element.getClass() == FromTableElement.class) {
fromTable = (FromTableElement)element;
continue;
}
if (element.getClass() == TimePeriodElement.class) {
timePeriod = (TimePeriodElement)element;
continue;
}
if (element.getClass() == DimPathElement.class) {
dimPathElement = (DimPathElement)element;
continue;
}
if (element.getClass() == DateField.class) {
dateField = (DateField)element;
}
}
//如果定义了指标,那么返回createIndicatorBatch对象
return new CreateIndicatorBatch(getQualifiedName(ctx.qualifiedName()),
indicatorDefine, defaultAdjunct, fromTable, dimTableElement,
timePeriod, dimPathElement, dateField, properties);
}