package com.packtpub.storm.trident.operator;
import com.esotericsoftware.minlog.Log;
import storm.trident.operation.BaseFunction;
import storm.trident.operation.TridentCollector;
import storm.trident.tuple.TridentTuple;
import java.util.ArrayList;
import java.util.List;
public class CampaignEffectiveness extends BaseFunction {
private static final long serialVersionUID = 1L;
@Override
public void execute(TridentTuple tuple, TridentCollector collector) {
String campaign = (String) tuple.getValue(0);
Long impressions_count = (Long) tuple.getValue(1);
Long click_thru_count = (Long) tuple.getValue(2);
if (click_thru_count == null)
click_thru_count = new Long(0);
double effectiveness = (double) click_thru_count / (double) impressions_count;
Log.error("[" + campaign + "," + String.valueOf(click_thru_count) + "," + impressions_count + ", " + effectiveness + "]");
List<Object> values = new ArrayList<Object>();
values.add(campaign);
collector.emit(values);
}
}