Class Expression.WindowFunction

java.lang.Object
com.google.protobuf.AbstractMessageLite
com.google.protobuf.AbstractMessage
com.google.protobuf.GeneratedMessageV3
io.substrait.proto.Expression.WindowFunction
All Implemented Interfaces:
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, Expression.WindowFunctionOrBuilder, Serializable
Enclosing class:
Expression

public static final class Expression.WindowFunction extends com.google.protobuf.GeneratedMessageV3 implements Expression.WindowFunctionOrBuilder
 A window function call.
 
Protobuf type substrait.Expression.WindowFunction
See Also:
  • Field Details

  • Method Details

    • newInstance

      protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
      Overrides:
      newInstance in class com.google.protobuf.GeneratedMessageV3
    • getDescriptor

      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
    • internalGetFieldAccessorTable

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
      Specified by:
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
    • getFunctionReference

      public int getFunctionReference()
       Points to a function_anchor defined in this plan. The function must be:
        - a window function
        - an aggregate function
      
       An aggregate function referenced here should be treated as a window
       function with Window Type STREAMING
      
       Required; 0 is considered to be a valid anchor/reference.
       
      uint32 function_reference = 1;
      Specified by:
      getFunctionReference in interface Expression.WindowFunctionOrBuilder
      Returns:
      The functionReference.
    • getArgumentsList

      public List<FunctionArgument> getArgumentsList()
       The arguments to be bound to the function. This must have exactly the
       number of arguments specified in the function definition, and the
       argument types must also match exactly:
      
        - Value arguments must be bound using FunctionArgument.value, and
          the expression in that must yield a value of a type that a function
          overload is defined for.
        - Type arguments must be bound using FunctionArgument.type, and a
          function overload must be defined for that type.
        - Enum arguments must be bound using FunctionArgument.enum
          followed by Enum.specified, with a string that case-insensitively
          matches one of the allowed options.
       
      repeated .substrait.FunctionArgument arguments = 9;
      Specified by:
      getArgumentsList in interface Expression.WindowFunctionOrBuilder
    • getArgumentsOrBuilderList

      public List<? extends FunctionArgumentOrBuilder> getArgumentsOrBuilderList()
       The arguments to be bound to the function. This must have exactly the
       number of arguments specified in the function definition, and the
       argument types must also match exactly:
      
        - Value arguments must be bound using FunctionArgument.value, and
          the expression in that must yield a value of a type that a function
          overload is defined for.
        - Type arguments must be bound using FunctionArgument.type, and a
          function overload must be defined for that type.
        - Enum arguments must be bound using FunctionArgument.enum
          followed by Enum.specified, with a string that case-insensitively
          matches one of the allowed options.
       
      repeated .substrait.FunctionArgument arguments = 9;
      Specified by:
      getArgumentsOrBuilderList in interface Expression.WindowFunctionOrBuilder
    • getArgumentsCount

      public int getArgumentsCount()
       The arguments to be bound to the function. This must have exactly the
       number of arguments specified in the function definition, and the
       argument types must also match exactly:
      
        - Value arguments must be bound using FunctionArgument.value, and
          the expression in that must yield a value of a type that a function
          overload is defined for.
        - Type arguments must be bound using FunctionArgument.type, and a
          function overload must be defined for that type.
        - Enum arguments must be bound using FunctionArgument.enum
          followed by Enum.specified, with a string that case-insensitively
          matches one of the allowed options.
       
      repeated .substrait.FunctionArgument arguments = 9;
      Specified by:
      getArgumentsCount in interface Expression.WindowFunctionOrBuilder
    • getArguments

      public FunctionArgument getArguments(int index)
       The arguments to be bound to the function. This must have exactly the
       number of arguments specified in the function definition, and the
       argument types must also match exactly:
      
        - Value arguments must be bound using FunctionArgument.value, and
          the expression in that must yield a value of a type that a function
          overload is defined for.
        - Type arguments must be bound using FunctionArgument.type, and a
          function overload must be defined for that type.
        - Enum arguments must be bound using FunctionArgument.enum
          followed by Enum.specified, with a string that case-insensitively
          matches one of the allowed options.
       
      repeated .substrait.FunctionArgument arguments = 9;
      Specified by:
      getArguments in interface Expression.WindowFunctionOrBuilder
    • getArgumentsOrBuilder

      public FunctionArgumentOrBuilder getArgumentsOrBuilder(int index)
       The arguments to be bound to the function. This must have exactly the
       number of arguments specified in the function definition, and the
       argument types must also match exactly:
      
        - Value arguments must be bound using FunctionArgument.value, and
          the expression in that must yield a value of a type that a function
          overload is defined for.
        - Type arguments must be bound using FunctionArgument.type, and a
          function overload must be defined for that type.
        - Enum arguments must be bound using FunctionArgument.enum
          followed by Enum.specified, with a string that case-insensitively
          matches one of the allowed options.
       
      repeated .substrait.FunctionArgument arguments = 9;
      Specified by:
      getArgumentsOrBuilder in interface Expression.WindowFunctionOrBuilder
    • getOptionsList

      public List<FunctionOption> getOptionsList()
       Options to specify behavior for corner cases, or leave behavior
       unspecified if the consumer does not need specific behavior in these
       cases.
       
      repeated .substrait.FunctionOption options = 11;
      Specified by:
      getOptionsList in interface Expression.WindowFunctionOrBuilder
    • getOptionsOrBuilderList

      public List<? extends FunctionOptionOrBuilder> getOptionsOrBuilderList()
       Options to specify behavior for corner cases, or leave behavior
       unspecified if the consumer does not need specific behavior in these
       cases.
       
      repeated .substrait.FunctionOption options = 11;
      Specified by:
      getOptionsOrBuilderList in interface Expression.WindowFunctionOrBuilder
    • getOptionsCount

      public int getOptionsCount()
       Options to specify behavior for corner cases, or leave behavior
       unspecified if the consumer does not need specific behavior in these
       cases.
       
      repeated .substrait.FunctionOption options = 11;
      Specified by:
      getOptionsCount in interface Expression.WindowFunctionOrBuilder
    • getOptions

      public FunctionOption getOptions(int index)
       Options to specify behavior for corner cases, or leave behavior
       unspecified if the consumer does not need specific behavior in these
       cases.
       
      repeated .substrait.FunctionOption options = 11;
      Specified by:
      getOptions in interface Expression.WindowFunctionOrBuilder
    • getOptionsOrBuilder

      public FunctionOptionOrBuilder getOptionsOrBuilder(int index)
       Options to specify behavior for corner cases, or leave behavior
       unspecified if the consumer does not need specific behavior in these
       cases.
       
      repeated .substrait.FunctionOption options = 11;
      Specified by:
      getOptionsOrBuilder in interface Expression.WindowFunctionOrBuilder
    • hasOutputType

      public boolean hasOutputType()
       Must be set to the return type of the function, exactly as derived
       using the declaration in the extension.
       
      .substrait.Type output_type = 7;
      Specified by:
      hasOutputType in interface Expression.WindowFunctionOrBuilder
      Returns:
      Whether the outputType field is set.
    • getOutputType

      public Type getOutputType()
       Must be set to the return type of the function, exactly as derived
       using the declaration in the extension.
       
      .substrait.Type output_type = 7;
      Specified by:
      getOutputType in interface Expression.WindowFunctionOrBuilder
      Returns:
      The outputType.
    • getOutputTypeOrBuilder

      public TypeOrBuilder getOutputTypeOrBuilder()
       Must be set to the return type of the function, exactly as derived
       using the declaration in the extension.
       
      .substrait.Type output_type = 7;
      Specified by:
      getOutputTypeOrBuilder in interface Expression.WindowFunctionOrBuilder
    • getPhaseValue

      public int getPhaseValue()
       Describes which part of the window function to perform within the
       context of distributed algorithms. Required. Must be set to
       INITIAL_TO_RESULT for window functions that are not decomposable.
       
      .substrait.AggregationPhase phase = 6;
      Specified by:
      getPhaseValue in interface Expression.WindowFunctionOrBuilder
      Returns:
      The enum numeric value on the wire for phase.
    • getPhase

      public AggregationPhase getPhase()
       Describes which part of the window function to perform within the
       context of distributed algorithms. Required. Must be set to
       INITIAL_TO_RESULT for window functions that are not decomposable.
       
      .substrait.AggregationPhase phase = 6;
      Specified by:
      getPhase in interface Expression.WindowFunctionOrBuilder
      Returns:
      The phase.
    • getSortsList

      public List<SortField> getSortsList()
       If specified, the records that are part of the window defined by
       upper_bound and lower_bound are ordered according to this list
       before they are aggregated. The first sort field has the highest
       priority; only if a sort field determines two records to be equivalent
       is the next field queried. This field is optional, and is only allowed
       if the window function is defined to support sorting.
       
      repeated .substrait.SortField sorts = 3;
      Specified by:
      getSortsList in interface Expression.WindowFunctionOrBuilder
    • getSortsOrBuilderList

      public List<? extends SortFieldOrBuilder> getSortsOrBuilderList()
       If specified, the records that are part of the window defined by
       upper_bound and lower_bound are ordered according to this list
       before they are aggregated. The first sort field has the highest
       priority; only if a sort field determines two records to be equivalent
       is the next field queried. This field is optional, and is only allowed
       if the window function is defined to support sorting.
       
      repeated .substrait.SortField sorts = 3;
      Specified by:
      getSortsOrBuilderList in interface Expression.WindowFunctionOrBuilder
    • getSortsCount

      public int getSortsCount()
       If specified, the records that are part of the window defined by
       upper_bound and lower_bound are ordered according to this list
       before they are aggregated. The first sort field has the highest
       priority; only if a sort field determines two records to be equivalent
       is the next field queried. This field is optional, and is only allowed
       if the window function is defined to support sorting.
       
      repeated .substrait.SortField sorts = 3;
      Specified by:
      getSortsCount in interface Expression.WindowFunctionOrBuilder
    • getSorts

      public SortField getSorts(int index)
       If specified, the records that are part of the window defined by
       upper_bound and lower_bound are ordered according to this list
       before they are aggregated. The first sort field has the highest
       priority; only if a sort field determines two records to be equivalent
       is the next field queried. This field is optional, and is only allowed
       if the window function is defined to support sorting.
       
      repeated .substrait.SortField sorts = 3;
      Specified by:
      getSorts in interface Expression.WindowFunctionOrBuilder
    • getSortsOrBuilder

      public SortFieldOrBuilder getSortsOrBuilder(int index)
       If specified, the records that are part of the window defined by
       upper_bound and lower_bound are ordered according to this list
       before they are aggregated. The first sort field has the highest
       priority; only if a sort field determines two records to be equivalent
       is the next field queried. This field is optional, and is only allowed
       if the window function is defined to support sorting.
       
      repeated .substrait.SortField sorts = 3;
      Specified by:
      getSortsOrBuilder in interface Expression.WindowFunctionOrBuilder
    • getInvocationValue

      public int getInvocationValue()
       Specifies whether equivalent records are merged before being aggregated.
       Optional, defaults to AGGREGATION_INVOCATION_ALL.
       
      .substrait.AggregateFunction.AggregationInvocation invocation = 10;
      Specified by:
      getInvocationValue in interface Expression.WindowFunctionOrBuilder
      Returns:
      The enum numeric value on the wire for invocation.
    • getInvocation

       Specifies whether equivalent records are merged before being aggregated.
       Optional, defaults to AGGREGATION_INVOCATION_ALL.
       
      .substrait.AggregateFunction.AggregationInvocation invocation = 10;
      Specified by:
      getInvocation in interface Expression.WindowFunctionOrBuilder
      Returns:
      The invocation.
    • getPartitionsList

      public List<Expression> getPartitionsList()
       When one or more partition expressions are specified, two records are
       considered to be in the same partition if and only if these expressions
       yield an equal record of values for both. When computing the window
       function, only the subset of records within the bounds that are also in
       the same partition as the current record are aggregated.
       
      repeated .substrait.Expression partitions = 2;
      Specified by:
      getPartitionsList in interface Expression.WindowFunctionOrBuilder
    • getPartitionsOrBuilderList

      public List<? extends ExpressionOrBuilder> getPartitionsOrBuilderList()
       When one or more partition expressions are specified, two records are
       considered to be in the same partition if and only if these expressions
       yield an equal record of values for both. When computing the window
       function, only the subset of records within the bounds that are also in
       the same partition as the current record are aggregated.
       
      repeated .substrait.Expression partitions = 2;
      Specified by:
      getPartitionsOrBuilderList in interface Expression.WindowFunctionOrBuilder
    • getPartitionsCount

      public int getPartitionsCount()
       When one or more partition expressions are specified, two records are
       considered to be in the same partition if and only if these expressions
       yield an equal record of values for both. When computing the window
       function, only the subset of records within the bounds that are also in
       the same partition as the current record are aggregated.
       
      repeated .substrait.Expression partitions = 2;
      Specified by:
      getPartitionsCount in interface Expression.WindowFunctionOrBuilder
    • getPartitions

      public Expression getPartitions(int index)
       When one or more partition expressions are specified, two records are
       considered to be in the same partition if and only if these expressions
       yield an equal record of values for both. When computing the window
       function, only the subset of records within the bounds that are also in
       the same partition as the current record are aggregated.
       
      repeated .substrait.Expression partitions = 2;
      Specified by:
      getPartitions in interface Expression.WindowFunctionOrBuilder
    • getPartitionsOrBuilder

      public ExpressionOrBuilder getPartitionsOrBuilder(int index)
       When one or more partition expressions are specified, two records are
       considered to be in the same partition if and only if these expressions
       yield an equal record of values for both. When computing the window
       function, only the subset of records within the bounds that are also in
       the same partition as the current record are aggregated.
       
      repeated .substrait.Expression partitions = 2;
      Specified by:
      getPartitionsOrBuilder in interface Expression.WindowFunctionOrBuilder
    • getBoundsTypeValue

      public int getBoundsTypeValue()
       Defines the bounds type: ROWS, RANGE
       
      .substrait.Expression.WindowFunction.BoundsType bounds_type = 12;
      Specified by:
      getBoundsTypeValue in interface Expression.WindowFunctionOrBuilder
      Returns:
      The enum numeric value on the wire for boundsType.
    • getBoundsType

      public Expression.WindowFunction.BoundsType getBoundsType()
       Defines the bounds type: ROWS, RANGE
       
      .substrait.Expression.WindowFunction.BoundsType bounds_type = 12;
      Specified by:
      getBoundsType in interface Expression.WindowFunctionOrBuilder
      Returns:
      The boundsType.
    • hasLowerBound

      public boolean hasLowerBound()
       Defines the record relative to the current record from which the window
       extends. The bound is inclusive. If the lower bound indexes a record
       greater than the upper bound, TODO (null range/no records passed?
       wrapping around as if lower/upper were swapped? error? null?).
       Optional; defaults to the start of the partition.
       
      .substrait.Expression.WindowFunction.Bound lower_bound = 5;
      Specified by:
      hasLowerBound in interface Expression.WindowFunctionOrBuilder
      Returns:
      Whether the lowerBound field is set.
    • getLowerBound

      public Expression.WindowFunction.Bound getLowerBound()
       Defines the record relative to the current record from which the window
       extends. The bound is inclusive. If the lower bound indexes a record
       greater than the upper bound, TODO (null range/no records passed?
       wrapping around as if lower/upper were swapped? error? null?).
       Optional; defaults to the start of the partition.
       
      .substrait.Expression.WindowFunction.Bound lower_bound = 5;
      Specified by:
      getLowerBound in interface Expression.WindowFunctionOrBuilder
      Returns:
      The lowerBound.
    • getLowerBoundOrBuilder

      public Expression.WindowFunction.BoundOrBuilder getLowerBoundOrBuilder()
       Defines the record relative to the current record from which the window
       extends. The bound is inclusive. If the lower bound indexes a record
       greater than the upper bound, TODO (null range/no records passed?
       wrapping around as if lower/upper were swapped? error? null?).
       Optional; defaults to the start of the partition.
       
      .substrait.Expression.WindowFunction.Bound lower_bound = 5;
      Specified by:
      getLowerBoundOrBuilder in interface Expression.WindowFunctionOrBuilder
    • hasUpperBound

      public boolean hasUpperBound()
       Defines the record relative to the current record up to which the window
       extends. The bound is inclusive. If the upper bound indexes a record
       less than the lower bound, TODO (null range/no records passed?
       wrapping around as if lower/upper were swapped? error? null?).
       Optional; defaults to the end of the partition.
       
      .substrait.Expression.WindowFunction.Bound upper_bound = 4;
      Specified by:
      hasUpperBound in interface Expression.WindowFunctionOrBuilder
      Returns:
      Whether the upperBound field is set.
    • getUpperBound

      public Expression.WindowFunction.Bound getUpperBound()
       Defines the record relative to the current record up to which the window
       extends. The bound is inclusive. If the upper bound indexes a record
       less than the lower bound, TODO (null range/no records passed?
       wrapping around as if lower/upper were swapped? error? null?).
       Optional; defaults to the end of the partition.
       
      .substrait.Expression.WindowFunction.Bound upper_bound = 4;
      Specified by:
      getUpperBound in interface Expression.WindowFunctionOrBuilder
      Returns:
      The upperBound.
    • getUpperBoundOrBuilder

      public Expression.WindowFunction.BoundOrBuilder getUpperBoundOrBuilder()
       Defines the record relative to the current record up to which the window
       extends. The bound is inclusive. If the upper bound indexes a record
       less than the lower bound, TODO (null range/no records passed?
       wrapping around as if lower/upper were swapped? error? null?).
       Optional; defaults to the end of the partition.
       
      .substrait.Expression.WindowFunction.Bound upper_bound = 4;
      Specified by:
      getUpperBoundOrBuilder in interface Expression.WindowFunctionOrBuilder
    • getArgsList

      @Deprecated public List<Expression> getArgsList()
      Deprecated.
       Deprecated; use arguments instead.
       
      repeated .substrait.Expression args = 8 [deprecated = true];
      Specified by:
      getArgsList in interface Expression.WindowFunctionOrBuilder
    • getArgsOrBuilderList

      @Deprecated public List<? extends ExpressionOrBuilder> getArgsOrBuilderList()
      Deprecated.
       Deprecated; use arguments instead.
       
      repeated .substrait.Expression args = 8 [deprecated = true];
      Specified by:
      getArgsOrBuilderList in interface Expression.WindowFunctionOrBuilder
    • getArgsCount

      @Deprecated public int getArgsCount()
      Deprecated.
       Deprecated; use arguments instead.
       
      repeated .substrait.Expression args = 8 [deprecated = true];
      Specified by:
      getArgsCount in interface Expression.WindowFunctionOrBuilder
    • getArgs

      @Deprecated public Expression getArgs(int index)
      Deprecated.
       Deprecated; use arguments instead.
       
      repeated .substrait.Expression args = 8 [deprecated = true];
      Specified by:
      getArgs in interface Expression.WindowFunctionOrBuilder
    • getArgsOrBuilder

      @Deprecated public ExpressionOrBuilder getArgsOrBuilder(int index)
      Deprecated.
       Deprecated; use arguments instead.
       
      repeated .substrait.Expression args = 8 [deprecated = true];
      Specified by:
      getArgsOrBuilder in interface Expression.WindowFunctionOrBuilder
    • isInitialized

      public final boolean isInitialized()
      Specified by:
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      Overrides:
      isInitialized in class com.google.protobuf.GeneratedMessageV3
    • writeTo

      public void writeTo(com.google.protobuf.CodedOutputStream output) throws IOException
      Specified by:
      writeTo in interface com.google.protobuf.MessageLite
      Overrides:
      writeTo in class com.google.protobuf.GeneratedMessageV3
      Throws:
      IOException
    • getSerializedSize

      public int getSerializedSize()
      Specified by:
      getSerializedSize in interface com.google.protobuf.MessageLite
      Overrides:
      getSerializedSize in class com.google.protobuf.GeneratedMessageV3
    • equals

      public boolean equals(Object obj)
      Specified by:
      equals in interface com.google.protobuf.Message
      Overrides:
      equals in class com.google.protobuf.AbstractMessage
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in interface com.google.protobuf.Message
      Overrides:
      hashCode in class com.google.protobuf.AbstractMessage
    • parseFrom

      public static Expression.WindowFunction parseFrom(ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static Expression.WindowFunction parseFrom(ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static Expression.WindowFunction parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static Expression.WindowFunction parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static Expression.WindowFunction parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static Expression.WindowFunction parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static Expression.WindowFunction parseFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

      public static Expression.WindowFunction parseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static Expression.WindowFunction parseDelimitedFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static Expression.WindowFunction parseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseFrom

      public static Expression.WindowFunction parseFrom(com.google.protobuf.CodedInputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

      public static Expression.WindowFunction parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • newBuilderForType

      public Expression.WindowFunction.Builder newBuilderForType()
      Specified by:
      newBuilderForType in interface com.google.protobuf.Message
      Specified by:
      newBuilderForType in interface com.google.protobuf.MessageLite
    • newBuilder

      public static Expression.WindowFunction.Builder newBuilder()
    • newBuilder

      public static Expression.WindowFunction.Builder newBuilder(Expression.WindowFunction prototype)
    • toBuilder

      Specified by:
      toBuilder in interface com.google.protobuf.Message
      Specified by:
      toBuilder in interface com.google.protobuf.MessageLite
    • newBuilderForType

      protected Expression.WindowFunction.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
      Specified by:
      newBuilderForType in class com.google.protobuf.GeneratedMessageV3
    • getDefaultInstance

      public static Expression.WindowFunction getDefaultInstance()
    • parser

      public static com.google.protobuf.Parser<Expression.WindowFunction> parser()
    • getParserForType

      public com.google.protobuf.Parser<Expression.WindowFunction> getParserForType()
      Specified by:
      getParserForType in interface com.google.protobuf.Message
      Specified by:
      getParserForType in interface com.google.protobuf.MessageLite
      Overrides:
      getParserForType in class com.google.protobuf.GeneratedMessageV3
    • getDefaultInstanceForType

      public Expression.WindowFunction getDefaultInstanceForType()
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder