private WorkspaceResource handleModules(WorkspaceResourceBuilder builder, ModulesFileInfo moduleInfo) throws IOException {
		BasicJvmClassBundle classes = new BasicJvmClassBundle();
		BasicFileBundle files = new BasicFileBundle();

		// The file-info should have the absolute path set as a property.
		// We have to use a path because unless we implement our own module reader, the internal API
		// only provides reader access via a path item.
		Path pathToModuleFile = InputFilePathProperty.get(moduleInfo);
		if (pathToModuleFile == null)
			throw new IOException("Content of modules can only be read from path, which has not been set for this model");
		ModulesIOUtil.stream(pathToModuleFile)
				.forEach(entry -> {
					// Follows the pattern: /<module-name>/<file-name>
					//  - entry extracts these values
					ModulesIOUtil.Entry moduleEntry = entry.getElement();
					ByteSource moduleFileSource = entry.getByteSource();
					Info info;
					try {
						info = infoImporter.readInfo(moduleEntry.getFileName(), moduleFileSource);
					} catch (IOException ex) {
						logger.error("IO error reading modules entry '{}' - skipping", moduleEntry.getOriginalPath());
						return;
					}
					// Add to appropriate bundle.
					// Modules file only has two expected kinds of content, classes and generic files.
					if (info.isClass()) {
						// Modules file only contains JVM classes
						classes.initialPut(info.asClass().asJvmClass());
					} else {
						// Anything else should be a general file
						files.initialPut(info.asFile());
					}

					// Record the original prefix '/<module-name>/' for the input
					PathPrefixProperty.set(info, "/" + moduleEntry.getModuleName() + "/");
				});

		return builder
				.withJvmClassBundle(classes)
				.withFileBundle(files)
				.build();
	}
Should <i>ONLY</i> be called if there is an existing duplicate/conflict in the given JVM class bundle.

@param existingClass
		Prior class entry in the class bundle.
@param currentClass
		New entry to de-duplicate.
@param classes
		Target class bundle.
@param files
		Target file bundle for fallback item placement.
recaf-core/src/main/java/software/coley/recaf/services/workspace/io/BasicResourceImporter.java