All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.katharsis.resource.registry.MultiResourceLookup Maven / Gradle / Ivy

The newest version!
package io.katharsis.resource.registry;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import io.katharsis.module.Module;

/**
 * Combines all {@link ResourceLookup} instances provided by the registered
 * {@link Module}.
 */
public class MultiResourceLookup implements ResourceLookup {

	private Collection lookups;

	public MultiResourceLookup(List lookups) {
		this.lookups = lookups;
	}

	@Override
	public Set> getResourceClasses() {
		Set> set = new HashSet<>();
		for (ResourceLookup lookup : lookups) {
			set.addAll(lookup.getResourceClasses());
		}
		return set;
	}

	@Override
	public Set> getResourceRepositoryClasses() {
		Set> set = new HashSet<>();
		for (ResourceLookup lookup : lookups) {
			set.addAll(lookup.getResourceRepositoryClasses());
		}
		return set;
	}

	public static ResourceLookup newInstance(ResourceLookup... lookups) {
		List list = new ArrayList<>();
		for (ResourceLookup lookup : lookups) {
			if (lookup != null) {
				list.add(lookup);
			}
		}
		return new MultiResourceLookup(list);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy