package com.produban.openbus.trident; import storm.trident.operation.BaseFilter; import storm.trident.operation.TridentOperationContext; import storm.trident.tuple.TridentTuple; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.util.Map; /** * @author Enno Shioji (enno.shioji@peerindex.com) */ public class Print extends BaseFilter { /** * */ private static final long serialVersionUID = 1L; private int partitionIndex; private int numPartitions; private final String name; private String ficheroSalida; private BufferedWriter salida; public Print() { name = ""; } public Print(String name, String ficheroSalida) { this.name = name; this.ficheroSalida = ficheroSalida; } @Override public void prepare(Map conf, TridentOperationContext context) { this.partitionIndex = context.getPartitionIndex(); this.numPartitions = context.numPartitions(); } @Override public boolean isKeep(TridentTuple tuple) { System.err.println(String.format("%s::Partition idx: %s out of %s partitions got %s", name, partitionIndex, numPartitions, tuple.toString())); if (!ficheroSalida.equals(null)) { try { salida = new BufferedWriter(new FileWriter(ficheroSalida, true)); salida.write(tuple.toString().substring(1, tuple.toString().length() - 1) + "\n"); salida.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return true; } }