All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.intelie.pipes.ArgQueue Maven / Gradle / Ivy

There is a newer version: 0.25.5
Show newest version
package net.intelie.pipes;

import net.intelie.pipes.ast.AstNode;
import net.intelie.pipes.ast.SourceLocation;
import net.intelie.pipes.types.Level;
import net.intelie.pipes.types.Metadata;
import net.intelie.pipes.types.Type;

import java.util.Set;

public interface ArgQueue extends ArgGetter {
    SourceLocation location();

    AstNode node();

    CompilerContext context();

    Metadata metadata();

    PipeCompiler compiler();

    int index();

    ArgQueue withContext(CompilerContext context);

    ArgQueue copy();

    ArgQueue copyFromHere();

    ArgQueue copyFrom(int index);

    void ensureSafe() throws PipeException;

     ArgGetter constantValue(Type exprType) throws PipeException;

     ArgGetter> expression(Type exprType) throws PipeException;

     ArgGetter> aggregation(Type exprType) throws PipeException;

     ArgGetter> scalar(Type exprType) throws PipeException;

     ArgGetter> constant(Type exprType) throws PipeException;

    > ArgGetter next(Level.Token token) throws PipeException;

    void ensureEmpty() throws PipeException;

    GroupBy groupBy() throws PipeException;

    Set getNextAnnotations();
}