// {{{ definePackage(packageName, manifest) method private void definePackage(String name, Manifest mf) { if (mf == null) { definePackage(name, null, null, null, null, null, null, null); return; } Attributes sa = mf.getAttributes(name.replace('.', '/') + '/'); Attributes ma = mf.getMainAttributes(); URL sealBase = null; if (Boolean.valueOf(getMfValue(sa, ma, Name.SEALED)).booleanValue()) { try { sealBase = jar.getFile().toURL(); } catch (MalformedURLException e) { } } Package pkg = definePackage( name, getMfValue(sa, ma, Name.SPECIFICATION_TITLE), getMfValue(sa, ma, Name.SPECIFICATION_VERSION), getMfValue(sa, ma, Name.SPECIFICATION_VENDOR), getMfValue(sa, ma, Name.IMPLEMENTATION_TITLE), getMfValue(sa, ma, Name.IMPLEMENTATION_VERSION), getMfValue(sa, ma, Name.IMPLEMENTATION_VENDOR), sealBase); } // }}}
// {{{ definePackage(clazz) method private void definePackage(String clazz) throws IOException { int idx = clazz.lastIndexOf('.'); if (idx != -1) { String name = clazz.substring(0, idx); if (getPackage(name) == null) definePackage(name, new JarFile(jar.getFile()).getManifest()); } } // }}}