Example #1
0
  /**
   * Parse an InputStream returning corresponding StreamRuntime
   *
   * @param inputStream input stream to be parsed
   * @param executionPlanContext associated siddhi executionPlanContext
   * @param streamDefinitionMap map containing user given stream definitions
   * @param tableDefinitionMap table definition map
   * @param eventTableMap EventTable Map
   * @param executors List to hold VariableExpressionExecutors to update after query parsing
   * @param latencyTracker latency tracker
   * @return StreamRuntime Stream Runtime
   */
  public static StreamRuntime parse(
      InputStream inputStream,
      ExecutionPlanContext executionPlanContext,
      Map<String, AbstractDefinition> streamDefinitionMap,
      Map<String, AbstractDefinition> tableDefinitionMap,
      Map<String, EventTable> eventTableMap,
      List<VariableExpressionExecutor> executors,
      LatencyTracker latencyTracker) {

    if (inputStream instanceof BasicSingleInputStream || inputStream instanceof SingleInputStream) {
      SingleInputStream singleInputStream = (SingleInputStream) inputStream;
      ProcessStreamReceiver processStreamReceiver =
          new ProcessStreamReceiver(singleInputStream.getStreamId(), latencyTracker);
      return SingleInputStreamParser.parseInputStream(
          (SingleInputStream) inputStream,
          executionPlanContext,
          executors,
          streamDefinitionMap,
          null,
          eventTableMap,
          new MetaStreamEvent(),
          processStreamReceiver,
          true,
          latencyTracker);
    } else if (inputStream instanceof JoinInputStream) {
      return JoinInputStreamParser.parseInputStream(
          ((JoinInputStream) inputStream),
          executionPlanContext,
          streamDefinitionMap,
          tableDefinitionMap,
          eventTableMap,
          executors,
          latencyTracker);
    } else if (inputStream instanceof StateInputStream) {
      MetaStateEvent metaStateEvent = new MetaStateEvent(inputStream.getAllStreamIds().size());
      return StateInputStreamParser.parseInputStream(
          ((StateInputStream) inputStream),
          executionPlanContext,
          metaStateEvent,
          streamDefinitionMap,
          null,
          eventTableMap,
          executors,
          latencyTracker);
    } else {
      throw new OperationNotSupportedException();
    }
  }