package com.aionemu.packetsamurai.filter;
import java.util.List;
import com.aionemu.packetsamurai.parser.DataStructure;
import javolution.util.FastList;
/**
*
* @author Gilles Duboscq
*
*/
public class Filter
{
private Condition _cond;
public Filter(String str)
{
_cond = new Condition(str);
}
public Condition getFilterCondition()
{
return _cond;
}
public List<DataStructure> filterPacketList(List<DataStructure> packets)
{
List<DataStructure> list = new FastList<DataStructure>();
// :)
for(DataStructure dp : packets)
if(this.matches(dp))
list.add(dp);
// i dont like when there's no { } tho, this one is beautiful :)
return list;
}
public boolean matches(DataStructure dp)
{
return this.getFilterCondition().evaluate(dp);
}
}