@Nonnull
	public MappingResults applyToClasses(@Nonnull Mappings mappings,
	                                     @Nonnull WorkspaceResource resource,
	                                     @Nonnull JvmClassBundle bundle,
	                                     @Nonnull Collection<JvmClassInfo> classes) {
		mappings = enrich(mappings);
		MappingApplicationListener listener = listeners == null ? null : listeners.createBundledMappingApplicationListener();
		MappingResults results = new MappingResults(workspace, mappings, listener);
		if (aggregateMappingManager != null)
			results.withAggregateManager(aggregateMappingManager);

		// Apply mappings to the provided classes, collecting into the results model.
		Mappings finalMappings = mappings;
		ExecutorService service = ThreadUtil.phasingService(applierThreadPool);
		for (JvmClassInfo classInfo : classes)
			service.execute(() -> dumpIntoResults(results, workspace, resource, bundle, classInfo, finalMappings));
		ThreadUtil.blockUntilComplete(service);

		// Yield results
		return results;
	}
Applies the mapping operation to the given classes.

@param mappings
		The mappings to apply.
@param resource
		Resource containing the classes.
@param bundle
		Bundle containing the classes.
@param classes
		Classes to apply mappings to.

@return Result wrapper detailing affected classes from the mapping operation.
recaf-core/src/main/java/software/coley/recaf/services/mapping/MappingApplier.java