private void processFilterFiles(Sim_event ev)
    {
        if (ev == null) {
            return;
        }

        Object[] data = (Object[]) ev.get_data();
        if (data == null) {
            return;
        }

        Filter f = (Filter) data[0];
        int destination = ((Integer) data[1]).intValue();

        ArrayList list = new ArrayList();
        int size = 0;

        Enumeration attributes = attrHash_.elements();
        while ( attributes.hasMoreElements() )
        {
            FileAttribute attrTemp = (FileAttribute) attributes.nextElement();
            if (f.match(attrTemp) == true)
            {
                list.add(attrTemp);     // add this attribute into the list
                size += attrTemp.getAttributeSize();
            }
        }

        // sends back the result to the sender
        super.send(super.output, 0, DataGridTags.CTLG_FILTER_DELIVERY,
                   new IO_data(list, size, destination) );
    }