package com.linkedin.databus2.relay.config;
import com.linkedin.databus.core.data_model.LogicalPartition;
import com.linkedin.databus.core.data_model.LogicalSource;
public class LogicalSourceStaticConfig
{
private final short _id;
private final String _name;
private final String _uri;
private final String _partitionFunction;
//private final short _pid;
private final LogicalSource _source;
private final LogicalPartition _partition;
private final boolean _skipInfinityScn;
private final String _regularQueryHints;
private final String _chunkedTxnQueryHints;
private final String _chunkedScnQueryHints;
//////////// STATIC DEFAULTS /////////////////
// in case no logical partition is specified we assume default 0 (for legacy code)
private static final LogicalPartition _defaultPartition =
new LogicalPartition(LogicalSourceConfig.DEFAULT_LOGICAL_SOURCE_PARTITION);
public static LogicalPartition getDefaultLogicalSourcePartition () {
return _defaultPartition;
}
public LogicalSourceStaticConfig(short id,
String name,
String uri,
String partitionFunction,
short partition,
boolean skipInfinityScn,
String regularQueryHints,
String chunkedTxnQueryHints,
String chunkedScnQueryHints)
{
super();
_id = id;
_name = name;
_uri = uri;
_partitionFunction = partitionFunction;
_source = new LogicalSource(Integer.valueOf(_id), _name); // SHOULD be name or uri?
_partition = new LogicalPartition(partition);
_skipInfinityScn = skipInfinityScn;
_regularQueryHints = regularQueryHints;
_chunkedTxnQueryHints = chunkedTxnQueryHints;
_chunkedScnQueryHints = chunkedScnQueryHints;
}
/** Globally unique source id */
public short getId()
{
return _id;
}
public LogicalSource getLogicalSource() {
return _source;
}
/** Fully qualified source name as specified by the Avro schema for the source */
public String getName()
{
return _name;
}
/** DB connection URI (table name) */
public String getUri()
{
return _uri;
}
/** Partitioning function spec */
public String getPartitionFunction()
{
return _partitionFunction;
}
/** get Partition */
public LogicalPartition getPartition()
{
return _partition;
}
/**
* A flag to skip updates with infinity SCN which have not been processed by the DB coalesce
* job yet. This gets better poll performance at the expense of additional replication latency. */
public boolean isSkipInfinityScn()
{
return _skipInfinityScn;
}
public String getRegularQueryHints() {
return _regularQueryHints;
}
public String getChunkedTxnQueryHints() {
return _chunkedTxnQueryHints;
}
public String getChunkedScnQueryHints() {
return _chunkedScnQueryHints;
}
}