class NamedSourceData {

	public final SourceData compute(String sourceName, ConfigUtils.Prefix prefix, String target, boolean profileSources,
			boolean failFast, String namespace, String[] activeProfiles) {<FILL_FUNCTION_BODY>}

	protected String generateSourceName(String target, String sourceName, String namespace, String[] activeProfiles) {
		return ConfigUtils.sourceName(target, sourceName, namespace);
	}

	/**
	 * Implementation specific (fabric8 or k8s-native) way to get the data from then given
	 * source names.
	 * @param sourceNames the ones that have been configured, LinkedHashSet in order ot
	 * preserve the order: non-profile source first and then the rest
	 * @return an Entry that holds the names of the source that were found and their data
	 */
	public abstract MultipleSourcesContainer dataSupplier(LinkedHashSet<String> sourceNames);

}


		LinkedHashSet<String> sourceNames = new LinkedHashSet<>();
		// first comes non-profile based source
		sourceNames.add(sourceName);

		MultipleSourcesContainer data = MultipleSourcesContainer.empty();

		try {
			if (profileSources) {
				for (String activeProfile : activeProfiles) {
					// add all profile based sources _after_ non-profile based one
					sourceNames.add(sourceName + "-" + activeProfile);
				}
			}

			data = dataSupplier(sourceNames);

			if (data.names().isEmpty()) {
				return new SourceData(ConfigUtils.sourceName(target, sourceName, namespace), Map.of());
			}

			if (prefix != ConfigUtils.Prefix.DEFAULT) {
				// since we are in a named source, calling get on the supplier is safe
				String prefixToUse = prefix.prefixProvider().get();
				PrefixContext prefixContext = new PrefixContext(data.data(), prefixToUse, namespace, data.names());
				return ConfigUtils.withPrefix(target, prefixContext);
			}

		}
		catch (Exception e) {
			onException(failFast, e);
		}

		String names = data.names().stream().sorted().collect(Collectors.joining(PROPERTY_SOURCE_NAME_SEPARATOR));
		return new SourceData(generateSourceName(target, names, namespace, activeProfiles), data.data());
	
<no_super_class>