Class BlockInfo.Builder

java.lang.Object
com.google.protobuf.AbstractMessageLite.Builder<BlockInfo,BlockInfo.Builder>
com.google.protobuf.GeneratedMessageLite.Builder<BlockInfo,BlockInfo.Builder>
com.hedera.hashgraph.sdk.proto.BlockInfo.Builder
All Implemented Interfaces:
com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, BlockInfoOrBuilder, Cloneable
Enclosing class:
BlockInfo

public static final class BlockInfo.Builder extends com.google.protobuf.GeneratedMessageLite.Builder<BlockInfo,BlockInfo.Builder> implements BlockInfoOrBuilder
 *
 Information for a transaction block.

 This includes:
 - last block number.
 - consensus times for:
 - previous block start.
 - current block start.
 - last handled transaction.
 - hash data for a rolling window of 256 blocks.
 - whether migration records were produced.
 
Protobuf type proto.BlockInfo
  • Method Details

    • getLastBlockNumber

      public long getLastBlockNumber()
       *
       A block number.
       <p>
       The block number of the last completed immutable block.
       
      int64 last_block_number = 1;
      Specified by:
      getLastBlockNumber in interface BlockInfoOrBuilder
      Returns:
      The lastBlockNumber.
    • setLastBlockNumber

      public BlockInfo.Builder setLastBlockNumber(long value)
       *
       A block number.
       <p>
       The block number of the last completed immutable block.
       
      int64 last_block_number = 1;
      Parameters:
      value - The lastBlockNumber to set.
      Returns:
      This builder for chaining.
    • clearLastBlockNumber

      public BlockInfo.Builder clearLastBlockNumber()
       *
       A block number.
       <p>
       The block number of the last completed immutable block.
       
      int64 last_block_number = 1;
      Returns:
      This builder for chaining.
    • hasFirstConsTimeOfLastBlock

      public boolean hasFirstConsTimeOfLastBlock()
       *
       A consensus timestamp.
       <p>
       The consensus time of the first transaction for the last completed immutable block.
       
      .proto.Timestamp first_cons_time_of_last_block = 2;
      Specified by:
      hasFirstConsTimeOfLastBlock in interface BlockInfoOrBuilder
      Returns:
      Whether the firstConsTimeOfLastBlock field is set.
    • getFirstConsTimeOfLastBlock

      public Timestamp getFirstConsTimeOfLastBlock()
       *
       A consensus timestamp.
       <p>
       The consensus time of the first transaction for the last completed immutable block.
       
      .proto.Timestamp first_cons_time_of_last_block = 2;
      Specified by:
      getFirstConsTimeOfLastBlock in interface BlockInfoOrBuilder
      Returns:
      The firstConsTimeOfLastBlock.
    • setFirstConsTimeOfLastBlock

      public BlockInfo.Builder setFirstConsTimeOfLastBlock(Timestamp value)
       *
       A consensus timestamp.
       <p>
       The consensus time of the first transaction for the last completed immutable block.
       
      .proto.Timestamp first_cons_time_of_last_block = 2;
    • setFirstConsTimeOfLastBlock

      public BlockInfo.Builder setFirstConsTimeOfLastBlock(Timestamp.Builder builderForValue)
       *
       A consensus timestamp.
       <p>
       The consensus time of the first transaction for the last completed immutable block.
       
      .proto.Timestamp first_cons_time_of_last_block = 2;
    • mergeFirstConsTimeOfLastBlock

      public BlockInfo.Builder mergeFirstConsTimeOfLastBlock(Timestamp value)
       *
       A consensus timestamp.
       <p>
       The consensus time of the first transaction for the last completed immutable block.
       
      .proto.Timestamp first_cons_time_of_last_block = 2;
    • clearFirstConsTimeOfLastBlock

      public BlockInfo.Builder clearFirstConsTimeOfLastBlock()
       *
       A consensus timestamp.
       <p>
       The consensus time of the first transaction for the last completed immutable block.
       
      .proto.Timestamp first_cons_time_of_last_block = 2;
    • getBlockHashes

      public com.google.protobuf.ByteString getBlockHashes()
       *
       A list of the last 256 block hashes.<br/>
       This is the SHA384 48 byte hashes of the previous 256 blocks,
       collected in a single byte array.
       <p>
       The first 48 bytes SHALL be the oldest block in the list.<br/>
       The last 48 bytes SHALL be the newest block, which is the last fully
       completed immutable block.<br/>
       This SHALL contain less than 256 block hashes if there are less than 256
       preceding blocks; for instance, shortly after network genesis the network
       will not have processed 256 blocks yet.
       <p>
       This MAY change significantly for Block Stream (HIP TBD).
       
      bytes block_hashes = 3;
      Specified by:
      getBlockHashes in interface BlockInfoOrBuilder
      Returns:
      The blockHashes.
    • setBlockHashes

      public BlockInfo.Builder setBlockHashes(com.google.protobuf.ByteString value)
       *
       A list of the last 256 block hashes.<br/>
       This is the SHA384 48 byte hashes of the previous 256 blocks,
       collected in a single byte array.
       <p>
       The first 48 bytes SHALL be the oldest block in the list.<br/>
       The last 48 bytes SHALL be the newest block, which is the last fully
       completed immutable block.<br/>
       This SHALL contain less than 256 block hashes if there are less than 256
       preceding blocks; for instance, shortly after network genesis the network
       will not have processed 256 blocks yet.
       <p>
       This MAY change significantly for Block Stream (HIP TBD).
       
      bytes block_hashes = 3;
      Parameters:
      value - The blockHashes to set.
      Returns:
      This builder for chaining.
    • clearBlockHashes

      public BlockInfo.Builder clearBlockHashes()
       *
       A list of the last 256 block hashes.<br/>
       This is the SHA384 48 byte hashes of the previous 256 blocks,
       collected in a single byte array.
       <p>
       The first 48 bytes SHALL be the oldest block in the list.<br/>
       The last 48 bytes SHALL be the newest block, which is the last fully
       completed immutable block.<br/>
       This SHALL contain less than 256 block hashes if there are less than 256
       preceding blocks; for instance, shortly after network genesis the network
       will not have processed 256 blocks yet.
       <p>
       This MAY change significantly for Block Stream (HIP TBD).
       
      bytes block_hashes = 3;
      Returns:
      This builder for chaining.
    • hasConsTimeOfLastHandledTxn

      public boolean hasConsTimeOfLastHandledTxn()
       *
       A consensus timestamp.
       <p>
       The consensus time of the last transaction that was handled by the node
       within the current block. Only top-level transactions can trigger stake
       period side effects, so we track them separately from the last-used
       time of <i>all</i> transactions, which include children.<br/>
       
      .proto.Timestamp cons_time_of_last_handled_txn = 4;
      Specified by:
      hasConsTimeOfLastHandledTxn in interface BlockInfoOrBuilder
      Returns:
      Whether the consTimeOfLastHandledTxn field is set.
    • getConsTimeOfLastHandledTxn

      public Timestamp getConsTimeOfLastHandledTxn()
       *
       A consensus timestamp.
       <p>
       The consensus time of the last transaction that was handled by the node
       within the current block. Only top-level transactions can trigger stake
       period side effects, so we track them separately from the last-used
       time of <i>all</i> transactions, which include children.<br/>
       
      .proto.Timestamp cons_time_of_last_handled_txn = 4;
      Specified by:
      getConsTimeOfLastHandledTxn in interface BlockInfoOrBuilder
      Returns:
      The consTimeOfLastHandledTxn.
    • setConsTimeOfLastHandledTxn

      public BlockInfo.Builder setConsTimeOfLastHandledTxn(Timestamp value)
       *
       A consensus timestamp.
       <p>
       The consensus time of the last transaction that was handled by the node
       within the current block. Only top-level transactions can trigger stake
       period side effects, so we track them separately from the last-used
       time of <i>all</i> transactions, which include children.<br/>
       
      .proto.Timestamp cons_time_of_last_handled_txn = 4;
    • setConsTimeOfLastHandledTxn

      public BlockInfo.Builder setConsTimeOfLastHandledTxn(Timestamp.Builder builderForValue)
       *
       A consensus timestamp.
       <p>
       The consensus time of the last transaction that was handled by the node
       within the current block. Only top-level transactions can trigger stake
       period side effects, so we track them separately from the last-used
       time of <i>all</i> transactions, which include children.<br/>
       
      .proto.Timestamp cons_time_of_last_handled_txn = 4;
    • mergeConsTimeOfLastHandledTxn

      public BlockInfo.Builder mergeConsTimeOfLastHandledTxn(Timestamp value)
       *
       A consensus timestamp.
       <p>
       The consensus time of the last transaction that was handled by the node
       within the current block. Only top-level transactions can trigger stake
       period side effects, so we track them separately from the last-used
       time of <i>all</i> transactions, which include children.<br/>
       
      .proto.Timestamp cons_time_of_last_handled_txn = 4;
    • clearConsTimeOfLastHandledTxn

      public BlockInfo.Builder clearConsTimeOfLastHandledTxn()
       *
       A consensus timestamp.
       <p>
       The consensus time of the last transaction that was handled by the node
       within the current block. Only top-level transactions can trigger stake
       period side effects, so we track them separately from the last-used
       time of <i>all</i> transactions, which include children.<br/>
       
      .proto.Timestamp cons_time_of_last_handled_txn = 4;
    • getMigrationRecordsStreamed

      public boolean getMigrationRecordsStreamed()
       *
       A flag indicating that migration records have been published.
       <p>
       This property SHALL be `false` immediately following a node upgrade<br/>
       This SHALL be set 'true' as migration records, if any, are published.
       Migration records are typically published "during" the first transaction
       handled by the node following startup.
       
      bool migration_records_streamed = 5;
      Specified by:
      getMigrationRecordsStreamed in interface BlockInfoOrBuilder
      Returns:
      The migrationRecordsStreamed.
    • setMigrationRecordsStreamed

      public BlockInfo.Builder setMigrationRecordsStreamed(boolean value)
       *
       A flag indicating that migration records have been published.
       <p>
       This property SHALL be `false` immediately following a node upgrade<br/>
       This SHALL be set 'true' as migration records, if any, are published.
       Migration records are typically published "during" the first transaction
       handled by the node following startup.
       
      bool migration_records_streamed = 5;
      Parameters:
      value - The migrationRecordsStreamed to set.
      Returns:
      This builder for chaining.
    • clearMigrationRecordsStreamed

      public BlockInfo.Builder clearMigrationRecordsStreamed()
       *
       A flag indicating that migration records have been published.
       <p>
       This property SHALL be `false` immediately following a node upgrade<br/>
       This SHALL be set 'true' as migration records, if any, are published.
       Migration records are typically published "during" the first transaction
       handled by the node following startup.
       
      bool migration_records_streamed = 5;
      Returns:
      This builder for chaining.
    • hasFirstConsTimeOfCurrentBlock

      public boolean hasFirstConsTimeOfCurrentBlock()
       *
       A consensus timestamp.
       <p>
       The consensus time of the first transaction in the current block;
       necessary for reconnecting nodes to detect when the current block
       is finished.
       
      .proto.Timestamp first_cons_time_of_current_block = 6;
      Specified by:
      hasFirstConsTimeOfCurrentBlock in interface BlockInfoOrBuilder
      Returns:
      Whether the firstConsTimeOfCurrentBlock field is set.
    • getFirstConsTimeOfCurrentBlock

      public Timestamp getFirstConsTimeOfCurrentBlock()
       *
       A consensus timestamp.
       <p>
       The consensus time of the first transaction in the current block;
       necessary for reconnecting nodes to detect when the current block
       is finished.
       
      .proto.Timestamp first_cons_time_of_current_block = 6;
      Specified by:
      getFirstConsTimeOfCurrentBlock in interface BlockInfoOrBuilder
      Returns:
      The firstConsTimeOfCurrentBlock.
    • setFirstConsTimeOfCurrentBlock

      public BlockInfo.Builder setFirstConsTimeOfCurrentBlock(Timestamp value)
       *
       A consensus timestamp.
       <p>
       The consensus time of the first transaction in the current block;
       necessary for reconnecting nodes to detect when the current block
       is finished.
       
      .proto.Timestamp first_cons_time_of_current_block = 6;
    • setFirstConsTimeOfCurrentBlock

      public BlockInfo.Builder setFirstConsTimeOfCurrentBlock(Timestamp.Builder builderForValue)
       *
       A consensus timestamp.
       <p>
       The consensus time of the first transaction in the current block;
       necessary for reconnecting nodes to detect when the current block
       is finished.
       
      .proto.Timestamp first_cons_time_of_current_block = 6;
    • mergeFirstConsTimeOfCurrentBlock

      public BlockInfo.Builder mergeFirstConsTimeOfCurrentBlock(Timestamp value)
       *
       A consensus timestamp.
       <p>
       The consensus time of the first transaction in the current block;
       necessary for reconnecting nodes to detect when the current block
       is finished.
       
      .proto.Timestamp first_cons_time_of_current_block = 6;
    • clearFirstConsTimeOfCurrentBlock

      public BlockInfo.Builder clearFirstConsTimeOfCurrentBlock()
       *
       A consensus timestamp.
       <p>
       The consensus time of the first transaction in the current block;
       necessary for reconnecting nodes to detect when the current block
       is finished.
       
      .proto.Timestamp first_cons_time_of_current_block = 6;
    • hasLastUsedConsTime

      public boolean hasLastUsedConsTime()
       *
       The consensus time of the last transaction that was handled by the node.
       <p>
       This property is how we 'advance the consensus clock'. The node MUST
       continually set this property to the consensus timestamp for the most
       recent transaction completed by the node.
       
      .proto.Timestamp last_used_cons_time = 7;
      Specified by:
      hasLastUsedConsTime in interface BlockInfoOrBuilder
      Returns:
      Whether the lastUsedConsTime field is set.
    • getLastUsedConsTime

      public Timestamp getLastUsedConsTime()
       *
       The consensus time of the last transaction that was handled by the node.
       <p>
       This property is how we 'advance the consensus clock'. The node MUST
       continually set this property to the consensus timestamp for the most
       recent transaction completed by the node.
       
      .proto.Timestamp last_used_cons_time = 7;
      Specified by:
      getLastUsedConsTime in interface BlockInfoOrBuilder
      Returns:
      The lastUsedConsTime.
    • setLastUsedConsTime

      public BlockInfo.Builder setLastUsedConsTime(Timestamp value)
       *
       The consensus time of the last transaction that was handled by the node.
       <p>
       This property is how we 'advance the consensus clock'. The node MUST
       continually set this property to the consensus timestamp for the most
       recent transaction completed by the node.
       
      .proto.Timestamp last_used_cons_time = 7;
    • setLastUsedConsTime

      public BlockInfo.Builder setLastUsedConsTime(Timestamp.Builder builderForValue)
       *
       The consensus time of the last transaction that was handled by the node.
       <p>
       This property is how we 'advance the consensus clock'. The node MUST
       continually set this property to the consensus timestamp for the most
       recent transaction completed by the node.
       
      .proto.Timestamp last_used_cons_time = 7;
    • mergeLastUsedConsTime

      public BlockInfo.Builder mergeLastUsedConsTime(Timestamp value)
       *
       The consensus time of the last transaction that was handled by the node.
       <p>
       This property is how we 'advance the consensus clock'. The node MUST
       continually set this property to the consensus timestamp for the most
       recent transaction completed by the node.
       
      .proto.Timestamp last_used_cons_time = 7;
    • clearLastUsedConsTime

      public BlockInfo.Builder clearLastUsedConsTime()
       *
       The consensus time of the last transaction that was handled by the node.
       <p>
       This property is how we 'advance the consensus clock'. The node MUST
       continually set this property to the consensus timestamp for the most
       recent transaction completed by the node.
       
      .proto.Timestamp last_used_cons_time = 7;
    • hasLastIntervalProcessTime

      public boolean hasLastIntervalProcessTime()
       *
       The time stamp at which the last interval process was done.
       <p>
       This field SHALL hold the consensus time for the last time
       at which an interval of time-dependent events were processed.
       
      .proto.Timestamp last_interval_process_time = 8;
      Specified by:
      hasLastIntervalProcessTime in interface BlockInfoOrBuilder
      Returns:
      Whether the lastIntervalProcessTime field is set.
    • getLastIntervalProcessTime

      public Timestamp getLastIntervalProcessTime()
       *
       The time stamp at which the last interval process was done.
       <p>
       This field SHALL hold the consensus time for the last time
       at which an interval of time-dependent events were processed.
       
      .proto.Timestamp last_interval_process_time = 8;
      Specified by:
      getLastIntervalProcessTime in interface BlockInfoOrBuilder
      Returns:
      The lastIntervalProcessTime.
    • setLastIntervalProcessTime

      public BlockInfo.Builder setLastIntervalProcessTime(Timestamp value)
       *
       The time stamp at which the last interval process was done.
       <p>
       This field SHALL hold the consensus time for the last time
       at which an interval of time-dependent events were processed.
       
      .proto.Timestamp last_interval_process_time = 8;
    • setLastIntervalProcessTime

      public BlockInfo.Builder setLastIntervalProcessTime(Timestamp.Builder builderForValue)
       *
       The time stamp at which the last interval process was done.
       <p>
       This field SHALL hold the consensus time for the last time
       at which an interval of time-dependent events were processed.
       
      .proto.Timestamp last_interval_process_time = 8;
    • mergeLastIntervalProcessTime

      public BlockInfo.Builder mergeLastIntervalProcessTime(Timestamp value)
       *
       The time stamp at which the last interval process was done.
       <p>
       This field SHALL hold the consensus time for the last time
       at which an interval of time-dependent events were processed.
       
      .proto.Timestamp last_interval_process_time = 8;
    • clearLastIntervalProcessTime

      public BlockInfo.Builder clearLastIntervalProcessTime()
       *
       The time stamp at which the last interval process was done.
       <p>
       This field SHALL hold the consensus time for the last time
       at which an interval of time-dependent events were processed.
       
      .proto.Timestamp last_interval_process_time = 8;
    • getPreviousWrappedRecordBlockRootHash

      public com.google.protobuf.ByteString getPreviousWrappedRecordBlockRootHash()
       *
       The root hash of the previous wrapped record block.
       
      bytes previous_wrapped_record_block_root_hash = 10;
      Specified by:
      getPreviousWrappedRecordBlockRootHash in interface BlockInfoOrBuilder
      Returns:
      The previousWrappedRecordBlockRootHash.
    • setPreviousWrappedRecordBlockRootHash

      public BlockInfo.Builder setPreviousWrappedRecordBlockRootHash(com.google.protobuf.ByteString value)
       *
       The root hash of the previous wrapped record block.
       
      bytes previous_wrapped_record_block_root_hash = 10;
      Parameters:
      value - The previousWrappedRecordBlockRootHash to set.
      Returns:
      This builder for chaining.
    • clearPreviousWrappedRecordBlockRootHash

      public BlockInfo.Builder clearPreviousWrappedRecordBlockRootHash()
       *
       The root hash of the previous wrapped record block.
       
      bytes previous_wrapped_record_block_root_hash = 10;
      Returns:
      This builder for chaining.
    • getWrappedIntermediatePreviousBlockRootHashesList

      public List<com.google.protobuf.ByteString> getWrappedIntermediatePreviousBlockRootHashesList()
       *
       The intermediate hashes, calculated for all historical wrapped
       record blocks, needed for subroot 2 in the block merkle
       tree structure. These hashes SHALL include the minimum required
       wrapped record block root hashes needed to construct subroot 2's
       final state at the end of the previous block.
       
      repeated bytes wrapped_intermediate_previous_block_root_hashes = 11;
      Specified by:
      getWrappedIntermediatePreviousBlockRootHashesList in interface BlockInfoOrBuilder
      Returns:
      A list containing the wrappedIntermediatePreviousBlockRootHashes.
    • getWrappedIntermediatePreviousBlockRootHashesCount

      public int getWrappedIntermediatePreviousBlockRootHashesCount()
       *
       The intermediate hashes, calculated for all historical wrapped
       record blocks, needed for subroot 2 in the block merkle
       tree structure. These hashes SHALL include the minimum required
       wrapped record block root hashes needed to construct subroot 2's
       final state at the end of the previous block.
       
      repeated bytes wrapped_intermediate_previous_block_root_hashes = 11;
      Specified by:
      getWrappedIntermediatePreviousBlockRootHashesCount in interface BlockInfoOrBuilder
      Returns:
      The count of wrappedIntermediatePreviousBlockRootHashes.
    • getWrappedIntermediatePreviousBlockRootHashes

      public com.google.protobuf.ByteString getWrappedIntermediatePreviousBlockRootHashes(int index)
       *
       The intermediate hashes, calculated for all historical wrapped
       record blocks, needed for subroot 2 in the block merkle
       tree structure. These hashes SHALL include the minimum required
       wrapped record block root hashes needed to construct subroot 2's
       final state at the end of the previous block.
       
      repeated bytes wrapped_intermediate_previous_block_root_hashes = 11;
      Specified by:
      getWrappedIntermediatePreviousBlockRootHashes in interface BlockInfoOrBuilder
      Parameters:
      index - The index of the element to return.
      Returns:
      The wrappedIntermediatePreviousBlockRootHashes at the given index.
    • setWrappedIntermediatePreviousBlockRootHashes

      public BlockInfo.Builder setWrappedIntermediatePreviousBlockRootHashes(int index, com.google.protobuf.ByteString value)
       *
       The intermediate hashes, calculated for all historical wrapped
       record blocks, needed for subroot 2 in the block merkle
       tree structure. These hashes SHALL include the minimum required
       wrapped record block root hashes needed to construct subroot 2's
       final state at the end of the previous block.
       
      repeated bytes wrapped_intermediate_previous_block_root_hashes = 11;
      Parameters:
      value - The wrappedIntermediatePreviousBlockRootHashes to set.
      Returns:
      This builder for chaining.
    • addWrappedIntermediatePreviousBlockRootHashes

      public BlockInfo.Builder addWrappedIntermediatePreviousBlockRootHashes(com.google.protobuf.ByteString value)
       *
       The intermediate hashes, calculated for all historical wrapped
       record blocks, needed for subroot 2 in the block merkle
       tree structure. These hashes SHALL include the minimum required
       wrapped record block root hashes needed to construct subroot 2's
       final state at the end of the previous block.
       
      repeated bytes wrapped_intermediate_previous_block_root_hashes = 11;
      Parameters:
      value - The wrappedIntermediatePreviousBlockRootHashes to add.
      Returns:
      This builder for chaining.
    • addAllWrappedIntermediatePreviousBlockRootHashes

      public BlockInfo.Builder addAllWrappedIntermediatePreviousBlockRootHashes(Iterable<? extends com.google.protobuf.ByteString> values)
       *
       The intermediate hashes, calculated for all historical wrapped
       record blocks, needed for subroot 2 in the block merkle
       tree structure. These hashes SHALL include the minimum required
       wrapped record block root hashes needed to construct subroot 2's
       final state at the end of the previous block.
       
      repeated bytes wrapped_intermediate_previous_block_root_hashes = 11;
      Parameters:
      values - The wrappedIntermediatePreviousBlockRootHashes to add.
      Returns:
      This builder for chaining.
    • clearWrappedIntermediatePreviousBlockRootHashes

      public BlockInfo.Builder clearWrappedIntermediatePreviousBlockRootHashes()
       *
       The intermediate hashes, calculated for all historical wrapped
       record blocks, needed for subroot 2 in the block merkle
       tree structure. These hashes SHALL include the minimum required
       wrapped record block root hashes needed to construct subroot 2's
       final state at the end of the previous block.
       
      repeated bytes wrapped_intermediate_previous_block_root_hashes = 11;
      Returns:
      This builder for chaining.
    • getWrappedIntermediateBlockRootsLeafCount

      public long getWrappedIntermediateBlockRootsLeafCount()
       *
       The number of leaves in the intermediate wrapped record block
       roots subtree.
       
      uint64 wrapped_intermediate_block_roots_leaf_count = 12;
      Specified by:
      getWrappedIntermediateBlockRootsLeafCount in interface BlockInfoOrBuilder
      Returns:
      The wrappedIntermediateBlockRootsLeafCount.
    • setWrappedIntermediateBlockRootsLeafCount

      public BlockInfo.Builder setWrappedIntermediateBlockRootsLeafCount(long value)
       *
       The number of leaves in the intermediate wrapped record block
       roots subtree.
       
      uint64 wrapped_intermediate_block_roots_leaf_count = 12;
      Parameters:
      value - The wrappedIntermediateBlockRootsLeafCount to set.
      Returns:
      This builder for chaining.
    • clearWrappedIntermediateBlockRootsLeafCount

      public BlockInfo.Builder clearWrappedIntermediateBlockRootsLeafCount()
       *
       The number of leaves in the intermediate wrapped record block
       roots subtree.
       
      uint64 wrapped_intermediate_block_roots_leaf_count = 12;
      Returns:
      This builder for chaining.