public void init(PolicyFinder finder) {
        // now that we have the PolicyFinder, we can load the policies
        PolicyReader reader = new PolicyReader(finder, logger, schemaFile);

        Iterator it = policyList.iterator();
        while (it.hasNext()) {
            String str = (String)(it.next());
            AbstractPolicy policy = null;

            try {
                try {
                    // first try to load it as a URL
                    URL url = new URL(str);
                    policy = reader.readPolicy(url);
                } catch (MalformedURLException murle) {
                    // assume that this is a filename, and try again
                    policy = reader.readPolicy(new File(str));
                }

                // we loaded the policy, so try putting it in the collection
                if (! policies.addPolicy(policy))
                    if (logger.isLoggable(Level.WARNING))
                        logger.log(Level.WARNING, "tried to load the same " +
                                   "policy multiple times: " + str);
            } catch (ParsingException pe) {
                if (logger.isLoggable(Level.WARNING))
                    logger.log(Level.WARNING, "Error reading policy: " + str,
                               pe);
            }
        }
    }