package edu.umd.rhsmith.diads.meater.modules.tweater.queries; 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.app.components.ComponentInitializer; import edu.umd.rhsmith.diads.meater.core.app.components.media.MediaProcessor; import edu.umd.rhsmith.diads.meater.core.app.components.media.MediaSource; import edu.umd.rhsmith.diads.meater.modules.tweater.media.UserData; import edu.umd.rhsmith.diads.meater.util.ControlException; public class UserToFollowQuery extends Component implements MediaProcessor<UserData> { public static final String SRCNAME_QUERIES = "queries"; public static final String PNAME_USERS = "users"; private final MediaSource<QueryFollow> querySource; public UserToFollowQuery(ComponentInitializer init) throws MEaterConfigurationException { super(init); this.querySource = new MediaSource<QueryFollow>(SRCNAME_QUERIES, QueryFollow.class); this.registerMediaProcessor(this); this.registerMediaSource(this.querySource); } @Override protected void doInitRoutine() throws MEaterConfigurationException { } @Override protected void doStartupRoutine() throws ControlException { } @Override protected void doShutdownRoutine() { } @Override public Class<UserData> getMediaClass() { return UserData.class; } @Override public String getProcessorName() { return ""; } @Override public boolean processMedia(UserData media) { this.querySource.sourceMedia(new QueryFollow(media.getUserId(), media .getUserId())); return true; } }