class ProjectNode extends PlanNode {

  @Override
  public SchemaKStream buildStream(final StreamsBuilder builder,
                                   final KsqlConfig ksqlConfig,
                                   final KafkaTopicClient kafkaTopicClient,
                                   final FunctionRegistry functionRegistry,
                                   final Map<String, Object> props,
                                   final SchemaRegistryClient schemaRegistryClient) {
    return getSource().buildStream(builder, ksqlConfig, kafkaTopicClient,
        functionRegistry, props, schemaRegistryClient)
        .select(getProjectNameExpressionPairList());
  }

  @JsonCreator public  ProjectNode(@JsonProperty("id") final PlanNodeId id,
                     @JsonProperty("source") final PlanNode source,
                     @JsonProperty("schema") final Schema schema,
                     @JsonProperty("projectExpressions")
                       final List<Expression> projectExpressions);

}