@Override
			public void apply() {
				// Dump transformed classes into the workspace
				checkedForEach(transformedJvmClasses, (path, cls) -> {
					JvmClassBundle bundle = path.getValueOfType(JvmClassBundle.class);
					if (bundle != null)
						bundle.put(cls);
				}, (path, cls, t) -> logger.error("Exception thrown handling transform application", t));

				// Delete classes that are marked for removal
				for (ClassPathNode path : getClassesToRemove()) {
					JvmClassBundle bundle = path.getValueOfType(JvmClassBundle.class);
					if (bundle != null)
						bundle.remove(path.getValue().getName());
				}

				// Apply mappings if they exist
				IntermediateMappings mappings = context.getMappings();
				if (!mappings.isEmpty()) {
					MappingResults results = mappingApplier.applyToPrimaryResource(mappings);
					results.apply();
				}
			}
@param transformerClasses
		JVM class transformers to run.
@param predicate
		Filter to control which JVM classes are transformed.
		Can be {@code null} to transform all JVM classes.

@return Result container with details about the transformation, including any failures, the transformed classes,
and the option to apply the transformations to the workspace.

@throws TransformationException
		When transformation cannot be run for any reason.
recaf-core/src/main/java/software/coley/recaf/services/transform/TransformationApplier.java