c = (Collection) inputTypeMap.get(req.getInputType());
c = (Collection) outputTypeMap.get(req.getOutputType());
    public boolean canConvert (Request req) {        Set conv = new HashSet();        Collection c;        Iterator it;        // can handle input?        c = (Collection) inputTypeMap.get(req.getInputType());        if (c == null) {            return false;	}        conv.addAll(c);	// TODO remove all references to blacklisted converters at setup	conv.removeAll(blacklistSet);        if (conv.size() == 0) {            return false;	}        // can handle output?        c = (Collection) inputTypeMap.get(req.getInputType());        if (c == null) {            return false;	}        conv.retainAll(c);        if (conv.size() == 0) {            return false;	}        // supports all parameters?        it = req.getParameterKeys().iterator();        while (it.hasNext()) {            String key = (String) it.next();            if (reservedParameters.indexOf(key) == -1) {                c = (Collection) parameterMap.get(key);                if (c == null) {                    return false;		}                conv.retainAll(c);                if (conv.size() == 0) {                    return false;		}            }        }        // determine which is "best"        // TODO add weight parameter        it = conv.iterator();        converterName = (String) it.next();        log.debug("appropriate converter: "+converterName);        return true;    }