package edu.umd.rhsmith.diads.meater.modules.tweater.streaming;
import edu.umd.rhsmith.diads.meater.core.app.MEaterConfigurationException;
import edu.umd.rhsmith.diads.meater.core.app.components.Component;
import edu.umd.rhsmith.diads.meater.core.config.components.ComponentConfig;
import edu.umd.rhsmith.diads.meater.core.config.props.StringProperty;
import edu.umd.rhsmith.diads.meater.modules.tweater.media.UserStatusData;
import edu.umd.rhsmith.diads.meater.modules.tweater.queries.QueryItem;
public class StreamQuerierConfig extends ComponentConfig implements
StreamQuerierInitializer {
public StreamQuerierConfig() {
super();
this.registerConfigProperty(oAuthConfigurationName);
this.registerMediaSourceName(StreamQuerier.SRCNAME_TWEETS,
UserStatusData.class);
this.registerMediaProcessorName(StreamQuerier.PNAME_QADD,
QueryItem.class);
this.registerMediaProcessorName(StreamQuerier.PNAME_QRMV,
QueryItem.class);
}
@Override
public Component instantiateComponent() throws MEaterConfigurationException {
return new StreamQuerier(this);
}
/*
* --------------------------------
* Config properties
* --------------------------------
*/
private static final String CKEY_OAUTH = "oAuthName";
private static final String DEFAULT_OAUTH = "oauth";
private static final String UINAME_OAUTH = "OAuth Configuration file";
private static final String UIDESC_OAUTH = "The name of the XML file containing the Twitter OAuth information to use with this instance. (Check TwEater module help to create such a file.)";
private final StringProperty oAuthConfigurationName = new StringProperty(
CKEY_OAUTH, DEFAULT_OAUTH, UINAME_OAUTH, UIDESC_OAUTH);
@Override
public String getoAuthConfigurationName() {
return oAuthConfigurationName.getVal();
}
/*
* --------------------------------
* Config operations
* --------------------------------
*/
@Override
public String getUiDescription() {
return TDESC;
}
/*
* --------------------------------
* Messages
* --------------------------------
*/
public static final String TNAME = "StreamQuerier";
public static final String TDESC = "A component which submits queries to the Twitter streaming API to retrieve statuses";
}