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

org.jvnet.jaxb2_commons.util.JClassUtils Maven / Gradle / Ivy

There is a newer version: 1.11.1-PUBLISHED-BY-MISTAKE
Show newest version
package org.jvnet.jaxb2_commons.util;

import java.util.Iterator;

import org.apache.commons.lang3.Validate;

import com.sun.codemodel.JClass;

public class JClassUtils {

	public static  boolean isInstanceOf(JClass _class,
			Class _interface) {
		Validate.notNull(_class);
		Validate.notNull(_interface);

		final String className = _class.fullName();

		try {
			if (_interface.isAssignableFrom(Class.forName(className))) {
				return true;
			}
		} catch (ClassNotFoundException cnfex) {
			// Unknown
		}

		final JClass superClass = _class._extends();
		if (superClass != null) {
			if (isInstanceOf(superClass, _interface)) {
				return true;
			}
		}

		for (final Iterator implementsIterator = _class
				._implements(); implementsIterator.hasNext();) {
			final JClass superInterface = implementsIterator.next();

			if (isInstanceOf(superInterface, _interface)) {
				return true;
			}
		}

		return false;
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy