package twitter4j.conf;
import twitter4j.TwitterStreamConstants;
class StreamConfigurationBase extends ConfigurationBase implements StreamConfiguration, TwitterStreamConstants {
private String dispatcherImpl;
private String siteStreamBaseURL;
private String userStreamBaseURL;
private String streamBaseURL;
private int httpStreamingReadTimeout;
private int asyncNumThreads;
private boolean userStreamRepliesAllEnabled;
private boolean jsonStoreEnabled;
private boolean stallWarningsEnabled;
protected StreamConfigurationBase() {
super();
setAsyncNumThreads(1);
setHttpStreamingReadTimeout(40 * 1000);
setDispatcherImpl("twitter4j.internal.async.DispatcherImpl");
setStreamBaseURL(DEFAULT_STREAM_BASE_URL);
setUserStreamBaseURL(DEFAULT_USER_STREAM_BASE_URL);
setSiteStreamBaseURL(DEFAULT_SITE_STREAM_BASE_URL);
setUserStreamRepliesAllEnabled(false);
}
@Override
public final int getAsyncNumThreads() {
return asyncNumThreads;
}
@Override
public String getDispatcherImpl() {
return dispatcherImpl;
}
@Override
public int getHttpStreamingReadTimeout() {
return httpStreamingReadTimeout;
}
@Override
public String getSiteStreamBaseURL() {
return siteStreamBaseURL;
}
@Override
public String getStreamBaseURL() {
return streamBaseURL;
}
@Override
public String getUserStreamBaseURL() {
return userStreamBaseURL;
}
@Override
public boolean isJSONStoreEnabled() {
return jsonStoreEnabled;
}
@Override
public boolean isStallWarningsEnabled() {
return stallWarningsEnabled;
}
@Override
public boolean isUserStreamRepliesAllEnabled() {
return userStreamRepliesAllEnabled;
}
public void setStallWarningsEnabled(final boolean isStallWarningsEnabled) {
stallWarningsEnabled = isStallWarningsEnabled;
}
protected final void setAsyncNumThreads(final int asyncNumThreads) {
this.asyncNumThreads = asyncNumThreads;
}
protected final void setDispatcherImpl(final String dispatcherImpl) {
this.dispatcherImpl = dispatcherImpl;
}
protected final void setHttpStreamingReadTimeout(final int httpStreamingReadTimeout) {
this.httpStreamingReadTimeout = httpStreamingReadTimeout;
}
protected final void setJSONStoreEnabled(final boolean enabled) {
jsonStoreEnabled = enabled;
}
protected final void setSiteStreamBaseURL(String siteStreamBaseURL) {
if (isNullOrEmpty(siteStreamBaseURL)) {
siteStreamBaseURL = DEFAULT_SITE_STREAM_BASE_URL;
}
this.siteStreamBaseURL = fixURLSlash(siteStreamBaseURL);
fixSiteStreamBaseURL();
}
protected final void setStreamBaseURL(String streamBaseURL) {
if (isNullOrEmpty(streamBaseURL)) {
streamBaseURL = DEFAULT_STREAM_BASE_URL;
}
this.streamBaseURL = fixURLSlash(streamBaseURL);
fixStreamBaseURL();
}
protected final void setUserStreamBaseURL(String userStreamBaseURL) {
if (isNullOrEmpty(userStreamBaseURL)) {
userStreamBaseURL = DEFAULT_USER_STREAM_BASE_URL;
}
this.userStreamBaseURL = fixURLSlash(userStreamBaseURL);
fixUserStreamBaseURL();
}
protected final void setUserStreamRepliesAllEnabled(final boolean enabled) {
userStreamRepliesAllEnabled = enabled;
}
private void fixSiteStreamBaseURL() {
if (DEFAULT_SITE_STREAM_BASE_URL.equals(fixURL(DEFAULT_USE_SSL, siteStreamBaseURL))) {
siteStreamBaseURL = fixURL(isSSLEnabled(), siteStreamBaseURL);
}
if (siteStreamBaseURL != null && siteStreamBaseURL.equals(fixURL(DEFAULT_USE_SSL, siteStreamBaseURL))) {
siteStreamBaseURL = fixURL(isSSLEnabled(), siteStreamBaseURL);
}
initRequestHeaders();
}
private void fixStreamBaseURL() {
if (DEFAULT_STREAM_BASE_URL.equals(fixURL(DEFAULT_USE_SSL, streamBaseURL))) {
streamBaseURL = fixURL(isSSLEnabled(), streamBaseURL);
}
if (streamBaseURL != null && streamBaseURL.equals(fixURL(DEFAULT_USE_SSL, streamBaseURL))) {
streamBaseURL = fixURL(isSSLEnabled(), streamBaseURL);
}
initRequestHeaders();
}
private void fixUserStreamBaseURL() {
if (DEFAULT_USER_STREAM_BASE_URL.equals(fixURL(DEFAULT_USE_SSL, userStreamBaseURL))) {
userStreamBaseURL = fixURL(isSSLEnabled(), userStreamBaseURL);
}
if (userStreamBaseURL != null && userStreamBaseURL.equals(fixURL(DEFAULT_USE_SSL, userStreamBaseURL))) {
userStreamBaseURL = fixURL(isSSLEnabled(), userStreamBaseURL);
}
initRequestHeaders();
}
}