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

com.softicar.platform.common.core.interfaces.finder.InterfacesFinder Maven / Gradle / Ivy

Go to download

The SoftiCAR Platform is a lightweight, Java-based library to create interactive business web applications.

There is a newer version: 50.0.0
Show newest version
package com.softicar.platform.common.core.interfaces.finder;

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

/**
 * Searches the class inheritance tree to find all interfaces that a given class
 * implements.
 *
 * @author Oliver Richers
 */
public class InterfacesFinder {

	private final Class someClass;
	private final Set> interfaces;

	public InterfacesFinder(Class someClass) {

		this.someClass = someClass;
		this.interfaces = new HashSet<>();
	}

	public Collection> findAll() {

		gatherAll(someClass);
		return interfaces;
	}

	public void gatherAll(Class currentClass) {

		while (currentClass != null) {
			for (Class someInterface: currentClass.getInterfaces()) {
				if (interfaces.add(someInterface)) {
					gatherAll(someInterface);
				}
			}
			currentClass = currentClass.getSuperclass();
		}
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy