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

net.amygdalum.testrecorder.profile.ConfigurationLoader Maven / Gradle / Ivy

package net.amygdalum.testrecorder.profile;

import static net.amygdalum.testrecorder.util.Types.boxedType;

import java.lang.reflect.Constructor;
import java.util.stream.Stream;

public interface ConfigurationLoader {

	 Stream load(Class clazz, Object... args);

	static ClassLoader defaultClassLoader(Class clazz) {
		ClassLoader loader = Thread.currentThread().getContextClassLoader();
		if (loader == null) {
			loader = clazz.getClassLoader();
		}
		if (loader == null) {
			loader = ClassLoader.getSystemClassLoader();
		}
		return loader;
	}

	default boolean matches(Constructor constructor, Object[] args) {
		Class[] parameterTypes = constructor.getParameterTypes();
		if (parameterTypes.length != args.length) {
			return false;
		}
		for (int i = 0; i < parameterTypes.length; i++) {
			if (args[i] != null && !boxedType(parameterTypes[i]).isInstance(args[i])) {
				return false;
			}
		}
		return true;
	}


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy