You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "Vladimir Sitnikov (Jira)" <ji...@apache.org> on 2020/10/03 09:43:00 UTC

[jira] [Created] (CALCITE-4303) Refactor org.apache.calcite.rel.RelInput to provide null-safe getters

Vladimir Sitnikov created CALCITE-4303:
------------------------------------------

             Summary: Refactor org.apache.calcite.rel.RelInput to provide null-safe getters
                 Key: CALCITE-4303
                 URL: https://issues.apache.org/jira/browse/CALCITE-4303
             Project: Calcite
          Issue Type: Sub-task
          Components: core
    Affects Versions: 1.25.0
            Reporter: Vladimir Sitnikov


There are several methods which might return null, however, they are used a lot as "never null" ones:

{code:java}
  <E extends Enum<E>> @Nullable E getEnum(String tag, Class<E> enumClass);
  @Nullable List<RexNode> getExpressionList(String tag);
  @Nullable List<String> getStringList(String tag);
  @Nullable List<Integer> getIntegerList(String tag);
  @Nullable List<List<Integer>> getIntegerListList(String tag);
{code}

It would be nice if the methods returned non-nullable values.

The suggested API is

{code:java}
  <E extends Enum<E>> E getEnum(String tag, Class<E> enumClass);
  List<RexNode> getExpressionList(String tag);
  List<String> getStringList(String tag);
  List<Integer> getIntegerList(String tag);
  List<List<Integer>> getIntegerListList(String tag);

  <E extends Enum<E>> @Nullable E getEnumOrNull(String tag, Class<E> enumClass);
  @Nullable List<RexNode> getExpressionListOrNull(String tag);
  @Nullable List<String> getStringListOrNull(String tag);
  @Nullable List<Integer> getIntegerListOrNull(String tag);
  @Nullable List<List<Integer>> getIntegerListListOrNull(String tag);
{code}




--
This message was sent by Atlassian Jira
(v8.3.4#803005)