Search in sources :

Example 6 with Window

use of io.siddhi.query.api.execution.query.input.handler.Window in project siddhi by wso2.

the class SiddhiQLBaseVisitorImpl method visitWindow.

/**
 * {@inheritDoc}
 * <p>The default implementation returns the result of calling
 * {@link #visitChildren} on {@code ctx}.</p>
 *
 * @param ctx
 */
@Override
public Window visitWindow(@NotNull SiddhiQLParser.WindowContext ctx) {
    AttributeFunction attributeFunction = (AttributeFunction) visit(ctx.function_operation());
    Window window = new Window(attributeFunction.getNamespace(), attributeFunction.getName(), attributeFunction.getParameters());
    populateQueryContext(window, ctx);
    return window;
}
Also used : Window(io.siddhi.query.api.execution.query.input.handler.Window) AttributeFunction(io.siddhi.query.api.expression.AttributeFunction)

Example 7 with Window

use of io.siddhi.query.api.execution.query.input.handler.Window in project siddhi by wso2.

the class SiddhiQLBaseVisitorImpl method visitDefinition_window.

@Override
public Object visitDefinition_window(@NotNull SiddhiQLParser.Definition_windowContext ctx) {
    Source source = (Source) visit(ctx.source());
    if (source.isInnerStream) {
        throw newSiddhiParserException(ctx, " '#' cannot be used, because Windows can't be defined " + "as InnerStream!");
    }
    if (source.isFaultStream) {
        throw newSiddhiParserException(ctx, " '!' cannot be used, because Windows can't be defined " + "as FaultStream!");
    }
    WindowDefinition windowDefinition = WindowDefinition.id(source.streamId);
    List<SiddhiQLParser.Attribute_nameContext> attribute_names = ctx.attribute_name();
    List<SiddhiQLParser.Attribute_typeContext> attribute_types = ctx.attribute_type();
    for (int i = 0; i < attribute_names.size(); i++) {
        SiddhiQLParser.Attribute_nameContext attributeNameContext = attribute_names.get(i);
        SiddhiQLParser.Attribute_typeContext attributeTypeContext = attribute_types.get(i);
        windowDefinition.attribute((String) visit(attributeNameContext), (Attribute.Type) visit(attributeTypeContext));
    }
    for (SiddhiQLParser.AnnotationContext annotationContext : ctx.annotation()) {
        windowDefinition.annotation((Annotation) visit(annotationContext));
    }
    AttributeFunction attributeFunction = (AttributeFunction) visit(ctx.function_operation());
    Window window = new Window(attributeFunction.getNamespace(), attributeFunction.getName(), attributeFunction.getParameters());
    windowDefinition.window(window);
    // Optional output event type
    if (ctx.output_event_type() != null) {
        windowDefinition.setOutputEventType((OutputStream.OutputEventType) visit(ctx.output_event_type()));
    }
    populateQueryContext(windowDefinition, ctx);
    return windowDefinition;
}
Also used : Window(io.siddhi.query.api.execution.query.input.handler.Window) SiddhiQLParser(io.siddhi.query.compiler.SiddhiQLParser) Attribute(io.siddhi.query.api.definition.Attribute) OrderByAttribute(io.siddhi.query.api.execution.query.selection.OrderByAttribute) OutputAttribute(io.siddhi.query.api.execution.query.selection.OutputAttribute) OutputStream(io.siddhi.query.api.execution.query.output.stream.OutputStream) AttributeFunction(io.siddhi.query.api.expression.AttributeFunction) WindowDefinition(io.siddhi.query.api.definition.WindowDefinition)

Aggregations

Window (io.siddhi.query.api.execution.query.input.handler.Window)7 MetaStateEvent (io.siddhi.core.event.state.MetaStateEvent)2 MetaStreamEvent (io.siddhi.core.event.stream.MetaStreamEvent)2 FilterProcessor (io.siddhi.core.query.processor.filter.FilterProcessor)2 AbstractStreamProcessor (io.siddhi.core.query.processor.stream.AbstractStreamProcessor)2 WindowProcessor (io.siddhi.core.query.processor.stream.window.WindowProcessor)2 Attribute (io.siddhi.query.api.definition.Attribute)2 Query (io.siddhi.query.api.execution.query.Query)2 StreamHandler (io.siddhi.query.api.execution.query.input.handler.StreamHandler)2 AttributeFunction (io.siddhi.query.api.expression.AttributeFunction)2 Test (org.testng.annotations.Test)2 OperationNotSupportedException (io.siddhi.core.exception.OperationNotSupportedException)1 SiddhiAppCreationException (io.siddhi.core.exception.SiddhiAppCreationException)1 ExpressionExecutor (io.siddhi.core.executor.ExpressionExecutor)1 VariableExpressionExecutor (io.siddhi.core.executor.VariableExpressionExecutor)1 EntryValveProcessor (io.siddhi.core.query.input.stream.single.EntryValveProcessor)1 SingleStreamRuntime (io.siddhi.core.query.input.stream.single.SingleStreamRuntime)1 ProcessingMode (io.siddhi.core.query.processor.ProcessingMode)1 Processor (io.siddhi.core.query.processor.Processor)1 SchedulingProcessor (io.siddhi.core.query.processor.SchedulingProcessor)1