package org.jivesoftware.openfire.plugin.gojara.messagefilter.processors;

import org.jivesoftware.openfire.interceptor.PacketRejectedException;
import org.jivesoftware.openfire.plugin.gojara.database.DatabaseManager;
import org.xmpp.packet.Packet;

/**
 * 
 * This class is only for logging messages between the gateway and the
 * registered clients. It uses the database to save the packets from the past 60
 * (configurable) minutes.
 * 
 * @author Holger Bergunde
 * @author axel.frederik.brand
 */
public class StatisticsProcessor extends AbstractRemoteRosterProcessor{

	private DatabaseManager _db;
	
	public StatisticsProcessor() {
		Log.info("Created StatisticsProcessor");
		_db = DatabaseManager.getInstance();
	}

	/**
	 * At this Point we Already know:
	 * neither of both JIDS is malformed (Package wouldn't have been intercepted)
	 * Package is incoming & processed
	 * 
	 * Either From or To contains the watched,passed subdomain
	 * From does not Equal To (This way we exclude PING sent by spectrum To spectrum
	 * From AND To are NOT empty (null), this way we exclude packets sent to server itself...change Maininterceptor if we want to change this
	 * 
	 */
	@Override
	public void process(Packet packet, String subdomain, String to, String from)
			throws PacketRejectedException {
		
		String type = packet.getClass().getName();
		_db.addNewLogEntry(subdomain, type, from, to);
	}

}
