class PhysicalSourceConfig implements ConfigBuilder<PhysicalSourceStaticConfig> {

  public PhysicalSourceConfig()
  {
    _id = 0;
    _resourceKey = "";
    _role = PhysicalSource.PHYSICAL_SOURCE_MASTER;
    _sources = new ArrayList<LogicalSourceConfig>();
    _restartScnOffset = 0;
    _slowSourceQueryThreshold = 3000;
    _retries = new BackoffTimerStaticConfigBuilder();
    _retries.setInitSleep(DEFAULT_DBPOLL_INTERVAL_MILLIS);
    _retries.setMaxRetryNum(-1);
    _retries.setMaxSleep(MAX_DBPOLL_INTERVAL_MILLIS);
    _retries.setSleepIncFactor(2.0);
    _retries.setSleepIncDelta(0);
    _chunkingType = DEFAULT_CHUNKING_TYPE;
    _txnsPerChunk = DEFAULT_TXN_CHUNK_SIZE;
    _scnChunkSize = DEFAULT_SCN_CHUNK_SIZE;
    _chunkedScnThreshold = DEFAULT_SCN_CHUNKED_THRESHOLD;
    _maxScnDelayMs = DEFAULT_MAX_SCN_DELAY_MS;
    _largestEventSizeInBytes = DEFAULT_LARGEST_EVENT_SIZE;
    _largestWindowSizeInBytes = DEFAULT_LARGEST_WINDOW_SIZE;
    _eventRatePerSec=10;
    _maxThrottleDurationInSecs = 0;
    _errorOnMissingFields = true;
    _dbusEventBuffer = null; //This buffer is per physical source, if not initialized in multi-tenant source config, the global eventbuffer config is used.
    _xmlEncoding = "ISO-8859-1";
    _replBitSetter = new ReplicationBitSetterConfig();
    _xmlVersion = "1.0";
  }

  public  PhysicalSourceConfig();
  public  PhysicalSourceConfig(String pSourceName, String pUri, int pPartionId);
  public  PhysicalSourceConfig(Collection<IdNamePair> srcIds);

}