import java.util.HashMap;
import java.util.Map;
import com.exalead.access.feedapi.AccessException;
import com.exalead.access.feedapi.Entry;
import com.exalead.access.feedapi.Feed;
import com.exalead.access.feedapi.Meta;
import com.exalead.access.feedapi.QueryContext;
import com.exalead.access.feedapi.ResultFeed;
import com.exalead.access.feedapi.utils.FeedHelper;
import com.exalead.access.feedapi.v10.AvailableMetas;
import com.exalead.access.feedapi.v10.Parameter;
import com.exalead.cv360.customcomponents.CustomComponent;
@CustomComponent(displayName = "Sample Feed")
public class SampleFeed extends Feed {
@Override
public String getDisplayName() {
return "Sample Feed";
}
@Override
public ResultFeed execute(QueryContext context) throws AccessException {
String feedOption1 = this.getEvaluatedParameter(context, "feedOption1");
ResultFeed r = new ResultFeed(this);
Entry e = new Entry("42");
e.addMeta(new Meta("metaName", "metaValue"));
e.addMeta(new Meta("feedOption1", feedOption1));
r.addEntry(e);
return r;
}
@Override
public ResultFeed get(QueryContext context, String id) throws AccessException {
return null;
}
@Override
public AvailableMetas getAvailableMetas(Map<String, String[]> feedConf) throws AccessException {
AvailableMetas m = new AvailableMetas();
String[] mv = { "metaName", "feedOption1" };
m.addType(new AvailableMetas.Type("all", mv, null));
return m;
}
@Override
protected Parameter[] getSupportedParameters() {
return new Parameter[] { new Parameter("feedOption1") };
}
public static void main(String[] args) throws Exception {
com.exalead.access.configuration.v10.Feed config = new com.exalead.access.configuration.v10.Feed();
config.addParameter(new com.exalead.access.configuration.v10.Feed.Parameter("feedOption1", "value1"));
Feed pageSearch = FeedHelper.getTestPageFeed("search");
pageSearch.getSubFeeds().add(FeedHelper.getTestFeed(SampleFeed.class, "test", config));
// FeedTrigger trigger = new testFeedTrigger();
// testFeed.getTriggers().add(trigger);
Map<String, String> params = new HashMap<String, String>();
params.put("test.feedOption1", "feedOption1Value");
ResultFeed result = FeedHelper.runFirstFeed(pageSearch, params);
for (Entry e : result.getEntries()) {
for (Object s : e.getMetas().keySet().toArray()) {
System.out.println(s + " : " + e.getMeta((String) s).getFirstValue());
}
}
}
}