class RowNumberWindowFunction implements WindowFunction {

    private static final String NAME = "row_number";

    public static void register(Functions.Builder builder) {
        builder.add(
            Signature.window(
                NAME,
                DataTypes.INTEGER.getTypeSignature()
            ),
            RowNumberWindowFunction::new
        );
    }

    private final Signature signature;
    private final BoundSignature boundSignature;

    private RowNumberWindowFunction(Signature signature, BoundSignature boundSignature) {
        this.signature = signature;
        this.boundSignature = boundSignature;
    }

    @Override
    public Object execute(int idxInPartition,
                          WindowFrameState currentFrame,
                          List<? extends CollectExpression<Row, ?>> expressions,
                          @Nullable Boolean ignoreNulls,
                          Input<?> ... args) {<FILL_FUNCTION_BODY>}

    @Override
    public Signature signature() {
        return signature;
    }

    @Override
    public BoundSignature boundSignature() {
        return boundSignature;
    }
}

        if (ignoreNulls != null) {
            throw new IllegalArgumentException("row_number cannot accept RESPECT or IGNORE NULLS flag.");
        }
        return idxInPartition + 1;
    
<no_super_class>