class SuppressNode extends SingleSourcePlanNode implements VerifiableNode {

  @Override
  public SchemaKStream<?> buildStream(final KsqlQueryBuilder builder) {
    final QueryContext.Stacker contextStacker = builder.buildNodeContext(getId().toString());
    final SchemaKStream<?> schemaKStream = getSource().buildStream(builder);

    if (!(schemaKStream instanceof SchemaKTable)) {
      throw new KsqlException("Failed in suppress node. Expected to find a Table, but "
          + "found a stream instead.");
    }

    return (((SchemaKTable<?>) schemaKStream)
        .suppress(
            refinementInfo,
            valueFormat,
            contextStacker
        ));
  }

  public  SuppressNode(
      final PlanNodeId id,
      final PlanNode source,
      final RefinementInfo refinementInfo
  );

}