package storm.applications.spout.parser; import com.google.common.collect.ImmutableList; import com.google.gson.Gson; import com.google.gson.JsonSyntaxException; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import storm.applications.util.stream.StreamValues; /** * * @author Maycon Viana Bordin <mayconbordin@gmail.com> */ public class ClickStreamParser extends Parser { private static final Logger LOG = LoggerFactory.getLogger(ClickStreamParser.class); private final Gson gson = new Gson(); @Override public List<StreamValues> parse(String input) { StreamValues values = null; try { ClickStream clickstream = gson.fromJson(input, ClickStream.class); values = new StreamValues(clickstream.ip, clickstream.url, clickstream.clientKey); } catch (JsonSyntaxException ex) { LOG.error("Error parsing JSON encoded clickstream: " + input, ex); } return ImmutableList.of(values); } private static class ClickStream { public String ip; public String url; public String clientKey; } }