class ChecklistPlanner {

    static String bestModuleName(final URL manifestUrl) throws Exception {
        try (InputStream is = manifestUrl.openStream()) {
            final Manifest manifest = new Manifest(is);
            List<String> omns = Util.getManifestHeaderValues(manifest, OAKPAL_MODULENAME);
            if (!omns.isEmpty()) {
                return omns.get(0);
            }
            List<String> bsns = Util.getManifestHeaderValues(manifest, BUNDLE_SYMBOLICNAME);
            if (!bsns.isEmpty()) {
                return bsns.get(0);
            }
            List<String> amns = Util.getManifestHeaderValues(manifest, AUTOMATIC_MODULE_NAME);
            if (!amns.isEmpty()) {
                return amns.get(0);
            }
        }
        return "";
    }

    public  ChecklistPlanner(final List<String> activeChecklistIds);

}