Package webit.script.core.ast.statements

Source Code of webit.script.core.ast.statements.ImportPart

// Copyright (c) 2013-2014, Webit Team. All Rights Reserved.
package webit.script.core.ast.statements;

import java.util.ArrayList;
import java.util.List;
import webit.script.Template;
import webit.script.core.ast.Expression;
import webit.script.core.ast.ResetableValueExpression;
import webit.script.exceptions.ParseException;

/**
*
* @author Zqq
*/
public class ImportPart {

    protected final int line;
    protected final int column;
    private Expression expr;
    private Expression paramsExpr;
    private List<String> exportNameList;
    private List<ResetableValueExpression> toResetableValueList;

    public ImportPart(Expression expr, int line, int column) {
        this(expr, null, line, column);
    }

    public ImportPart(Expression expr, Expression paramsExpr, int line, int column) {
        this.line = line;
        this.column = column;
        this.expr = expr;
        this.paramsExpr = paramsExpr;
        this.exportNameList = new ArrayList<String>();
        this.toResetableValueList = new ArrayList<ResetableValueExpression>();
    }

    public ImportPart append(String name, Expression to) {
        if (to instanceof ResetableValueExpression) {
            this.exportNameList.add(name);
            this.toResetableValueList.add((ResetableValueExpression) to);
            return this;
        } else {
            throw new ParseException("Need a resetable expression.", to);
        }
    }

    public Import pop(Template template) {

        final int len = exportNameList.size();
        return len == 0
                ? new Import(expr, paramsExpr, null, null, template, line, column)
                : new Import(expr, paramsExpr,
                        exportNameList.toArray(new String[len]),
                        toResetableValueList.toArray(new ResetableValueExpression[len]),
                        template, line, column);
    }
}
TOP

Related Classes of webit.script.core.ast.statements.ImportPart

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.