void createFragment(String fragmentName, AddressSet addressSet, TaskMonitor monitor,
			MessageLog log) throws CancelledException {

		if (!isCreateFragments) {
			return;
		}
		monitor.incrementProgress(1);
		monitor.checkCancelled();
		monitor.setMessage("DEX: creating fragment: " + fragmentName + " ...");
		try {
			ProgramModule module = program.getListing().getDefaultRootModule();
			ProgramFragment fragment = api.getFragment(module, fragmentName);
			if (fragment == null) {
				fragment = module.createFragment(fragmentName);
			}
			for (AddressRange range : addressSet) {
				monitor.checkCancelled();
				fragment.move(range.getMinAddress(), range.getMaxAddress());
			}
		}
		catch (Exception e) {
			log.appendMsg(e.getMessage());
		}
	}
A class to manage DEX fragment creation.
Allows address ranges to coalesce before being created.
Fragment creation is slow, so support option to skip it.
Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/android/dex/analyzer/DexHeaderFragmentManager.java