com.amazon.redshift.replication.fluent

## Class AbstractStreamBuilder<T extends ChainedCommonStreamBuilder<T>>

- java.lang.Object
- - com.amazon.redshift.replication.fluent.AbstractStreamBuilder<T>

All Implemented Interfaces:
  ChainedCommonStreamBuilder<T>

Direct Known Subclasses:
  LogicalStreamBuilder, PhysicalStreamBuilder

    public abstract class AbstractStreamBuilder<T extends ChainedCommonStreamBuilder<T>>
    extends Object
    implements ChainedCommonStreamBuilder<T>

### Field Summary

Fields
`protected String` `slotName`
`protected LogSequenceNumber` `startPosition`
`protected int` `statusIntervalMs`

### Constructor Summary

Constructors
Constructor and Description
`AbstractStreamBuilder()`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`protected abstract T` `self()`
`T` `withSlotName(String slotName)` Replication slots provide an automated way to ensure that the master does not remove WAL segments until they have been received by all standbys, and that the master does not remove rows which could cause a recovery conflict even when the standby is disconnected.
`T` `withStartPosition(LogSequenceNumber lsn)` Specify start position from which backend will start stream changes.
`T` `withStatusInterval(int time, TimeUnit format)` Specifies the number of time between status packets sent back to the server.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### statusIntervalMs

    protected int statusIntervalMs

#### startPosition

    protected LogSequenceNumber startPosition

#### slotName

    protected String slotName

### Constructor Detail

#### AbstractStreamBuilder

    public AbstractStreamBuilder()

### Method Detail

#### self

    protected abstract T self()

#### withStatusInterval

    public T withStatusInterval(int time,
                                TimeUnit format)

Description copied from interface: `ChainedCommonStreamBuilder`
Specifies the number of time between status packets sent back to the server. This allows for easier monitoring of the progress from server. A value of zero disables the periodic status updates completely, although an update will still be sent when requested by the server, to avoid timeout disconnect. The default value is 10 seconds.

Specified by:
  `withStatusInterval` in interface `ChainedCommonStreamBuilder<T extends ChainedCommonStreamBuilder<T>>`
Parameters:
  `time` - positive time
  `format` - format for specified time
Returns:
  not null fluent

#### withStartPosition

    public T withStartPosition(LogSequenceNumber lsn)

Description copied from interface: `ChainedCommonStreamBuilder`
Specify start position from which backend will start stream changes. If parameter will not specify, streaming starts from restart_lsn. For more details see pg_replication_slots description.

Specified by:
  `withStartPosition` in interface `ChainedCommonStreamBuilder<T extends ChainedCommonStreamBuilder<T>>`
Parameters:
  `lsn` - not null position from which need start replicate changes
Returns:
  not null fluent

#### withSlotName

    public T withSlotName(String slotName)

Description copied from interface: `ChainedCommonStreamBuilder`
Replication slots provide an automated way to ensure that the master does not remove WAL segments until they have been received by all standbys, and that the master does not remove rows which could cause a recovery conflict even when the standby is disconnected.

Specified by:
  `withSlotName` in interface `ChainedCommonStreamBuilder<T extends ChainedCommonStreamBuilder<T>>`
Parameters:
  `slotName` - not null replication slot already exists on server.
Returns:
  this instance as a fluent interface