this.item = item;
    public boolean processBitstream(Context c, Item item, Bitstream source)            throws Exception    {        boolean overWrite = MediaFilterManager.isForce;        // get bitstream filename, calculate destination filename        String newName = getFilteredName(source.getName());        Bitstream existingBitstream = null; // is there an existing rendition?        Bundle targetBundle = null; // bundle we're modifying        Bundle[] bundles = item.getBundles(getBundleName());        // check if destination bitstream exists        if (bundles.length > 0)        {            // only finds the last match (FIXME?)            for (int i = 0; i < bundles.length; i++)            {                Bitstream[] bitstreams = bundles[i].getBitstreams();                for (int j = 0; j < bitstreams.length; j++)                {                    if (bitstreams[j].getName().equals(newName))                    {                        targetBundle = bundles[i];                        existingBitstream = bitstreams[j];                    }                }            }        }        // if exists and overwrite = false, exit        if (!overWrite && (existingBitstream != null))        {            System.out.println("SKIPPED: bitstream " + source.getID()                    + " because '" + newName + "' already exists");            return false;        }        // create new bundle if needed        if (bundles.length < 1)        {            targetBundle = item.createBundle(getBundleName());        }        else        {            // take the first match            targetBundle = bundles[0];        }        InputStream destStream = getDestinationStream(source.retrieve());        Bitstream b = targetBundle.createBitstream(destStream);        // Now set the format and name of the bitstream        b.setName(newName);        b.setSource("Written by MediaFilter " + this.getClass().getName()); // or                                                                            // obj.getClass().getName();        b.setDescription(getDescription());        // Find the proper format        BitstreamFormat bf = BitstreamFormat.findByShortDescription(c,                getFormatString());        b.setFormat(bf);        b.update();        // fixme - set date?        // we are overwriting, so remove old bitstream        if (existingBitstream != null)        {            targetBundle.removeBitstream(existingBitstream);        }        System.out.println("FILTERED: bitstream " + source.getID()                + " and created '" + newName + "'");        return true;    }