org.postgresql.replication.fluent.ReplicationStreamBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of postgresql Show documentation
Show all versions of postgresql Show documentation
The PostgreSQL Driver JDBC4
/*
* Copyright (c) 2016, PostgreSQL Global Development Group
* See the LICENSE file in the project root for more information.
*/
package org.postgresql.replication.fluent;
import org.postgresql.core.BaseConnection;
import org.postgresql.core.ReplicationProtocol;
import org.postgresql.replication.PGReplicationStream;
import org.postgresql.replication.fluent.logical.ChainedLogicalStreamBuilder;
import org.postgresql.replication.fluent.logical.LogicalReplicationOptions;
import org.postgresql.replication.fluent.logical.LogicalStreamBuilder;
import org.postgresql.replication.fluent.logical.StartLogicalReplicationCallback;
import org.postgresql.replication.fluent.physical.ChainedPhysicalStreamBuilder;
import org.postgresql.replication.fluent.physical.PhysicalReplicationOptions;
import org.postgresql.replication.fluent.physical.PhysicalStreamBuilder;
import org.postgresql.replication.fluent.physical.StartPhysicalReplicationCallback;
import java.sql.SQLException;
public class ReplicationStreamBuilder implements ChainedStreamBuilder {
private final BaseConnection baseConnection;
/**
* @param connection not null connection with that will be associate replication
*/
public ReplicationStreamBuilder(final BaseConnection connection) {
this.baseConnection = connection;
}
@Override
public ChainedLogicalStreamBuilder logical() {
return new LogicalStreamBuilder(new StartLogicalReplicationCallback() {
@Override
public PGReplicationStream start(LogicalReplicationOptions options) throws SQLException {
ReplicationProtocol protocol = baseConnection.getReplicationProtocol();
return protocol.startLogical(options);
}
});
}
@Override
public ChainedPhysicalStreamBuilder physical() {
return new PhysicalStreamBuilder(new StartPhysicalReplicationCallback() {
@Override
public PGReplicationStream start(PhysicalReplicationOptions options) throws SQLException {
ReplicationProtocol protocol = baseConnection.getReplicationProtocol();
return protocol.startPhysical(options);
}
});
}
}