public Node visitCreateBatchIndicator()

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);
    }