/*
* Copyright: Almende B.V. (2014), Rotterdam, The Netherlands
* License: The Apache Software License, Version 2.0
*/
package com.almende.util;
/**
* The Class ClassUtil.
*/
public final class ClassUtil {
/**
* Instantiates a new class util.
*/
private ClassUtil() {
}
/**
* Check if checkClass has implemented interfaceClass.
*
* @param checkClass
* the check class
* @param interfaceClass
* the interface class
* @return true, if successful
*/
public static boolean hasInterface(final Class<?> checkClass,
final Class<?> interfaceClass) {
final String name = interfaceClass.getName();
Class<?> s = checkClass;
while (s != null) {
final Class<?>[] interfaces = s.getInterfaces();
for (final Class<?> i : interfaces) {
if (i.getName().equals(name)) {
return true;
}
if (hasInterface(s, i)) {
return true;
}
}
s = s.getSuperclass();
}
return false;
}
/**
* Check if checkClass extends superClass.
*
* @param checkClass
* the check class
* @param superClass
* the super class
* @return true, if successful
*/
public static boolean hasSuperClass(final Class<?> checkClass,
final Class<?> superClass) {
// TODO: replace with return (checkClass instanceof superClass); ?
final String name = superClass.getName();
Class<?> s = (checkClass != null) ? checkClass.getSuperclass() : null;
while (s != null) {
if (s.getName().equals(name)) {
return true;
}
s = s.getSuperclass();
}
return false;
}
}