public void setLoadOnDemand() {
		if (loadOnDemand)
			return;
		loadOnDemand = true;
		if ((Main.stripping & Main.STRIP_UNREACH) == 0) {
			String fullNamePrefix = (fullName.length() > 0) ? fullName + "."
					: "";

			// Load all classes and packages now, so they don't get stripped
			Enumeration enum_ = ClassInfo.getClassesAndPackages(getFullName());
			while (enum_.hasMoreElements()) {
				String subclazz = ((String) enum_.nextElement()).intern();
				if (loadedClasses.containsKey(subclazz))
					continue;
				String subFull = (fullNamePrefix + subclazz).intern();

				if (ClassInfo.isPackage(subFull)) {
					PackageIdentifier ident = new PackageIdentifier(bundle,
							this, subFull, subclazz);
					loadedClasses.put(subclazz, ident);
					swappedClasses = null;
					ident.setLoadOnDemand();
				} else {
					ClassIdentifier ident = new ClassIdentifier(this, subFull,
							subclazz, ClassInfo.forName(subFull));

					if (GlobalOptions.verboseLevel > 1)
						GlobalOptions.err
								.println("preloading Class " + subFull);
					loadedClasses.put(subclazz, ident);
					swappedClasses = null;
					bundle.addClassIdentifier(ident);
					((ClassIdentifier) ident).initClass();
				}
			}
			// Everything is loaded, we don't need to load on demand anymore.
			loadOnDemand = false;
		}
	}