@Override
	public void onUpdatePath(@Nonnull PathNode<?> path) {
		// If we've not seen a path before, do late initialization for UI elements
		// that require path information.
		if (this.path == null)
			if (path instanceof ClassPathNode classPathNode)
				lateInitForClass(classPathNode);
			else if (path instanceof ClassMemberPathNode memberPathNode)
				lateInitForMethod(memberPathNode);

		// Update the path and call any path listeners.
		this.path = path;
		Unchecked.checkedForEach(pathUpdateListeners, listener -> listener.accept(path),
				(listener, t) -> logger.error("Exception thrown when handling assembler-pane path update callback", t));

		// Update UI state.
		if (!updateLock.get()) {
			pipeline = pipelineManager.getPipeline(path);

			// Setup from existing class data from the path.
			lastAssembledClass = path.getValueOfType(ClassInfo.class);
			lastAssembledClassRepresentation = pipeline.getRepresentation(Unchecked.cast(lastAssembledClass));
			lastResult = () -> lastAssembledClassRepresentation;
			eachChild(UpdatableNavigable.class, c -> c.onUpdatePath(path));
			eachChild(AssemblerBuildConsumer.class, c -> c.consumeClass(lastResult, lastAssembledClass));

			// Refresh the primary assembler display.
			FxThreadUtil.run(this::refreshDisplay);
		}
	}
Called by {@link #onUpdatePath(PathNode)} once before the {@link #path} is set for the first time.

@param memberPathNode
		The given path.
recaf-ui/src/main/java/software/coley/recaf/ui/pane/editing/assembler/AssemblerPane.java