ComponentPlaceholder createOrRecyclePlaceholder(ComponentProvider provider,
			ComponentPlaceholder defaultPlaceholder) {

		String owner = provider.getOwner();
		Set<ComponentPlaceholder> unusedPlaceholders = getUnusedPlaceholdersByOwner(owner);
		ComponentPlaceholder reusablePlaceholder =
			findBestUnusedPlaceholder(unusedPlaceholders, provider);

		if (reusablePlaceholder != null) {
			reusablePlaceholder.setProvider(provider);
			registerPlaceholder(reusablePlaceholder);
			return reusablePlaceholder;
		}

		ComponentPlaceholder newPlaceholder = defaultPlaceholder;
		if (newPlaceholder == null) {
			newPlaceholder = new ComponentPlaceholder(provider);
		}

		installPlaceholder(newPlaceholder);
		return newPlaceholder;
	}
Finds or creates a component placeholder object for the given provider.
@param provider the provider for which to get an placeholder object.
@param defaultPlaceholder the placeholder to use if an existing one cannot be found
@return a component placeholder object that will be used to manager the providers component.
Ghidra/Framework/Docking/src/main/java/docking/PlaceholderManager.java