class InterfaceUtils {
    /**
     * Test if the given class is a subtype of ONE of the super classes given.
     * <br/>
     * The following test that the class is a subclass of Hashtable.
     *
     * <pre>
     * boolean isHashtable = InterfaceUtils.isSubtype( classThatCouldBeAHashTable, "java.util.Hashtable");
     * </pre>
     *
     * @param javaClass Class to test
     * @param superClasses If classes extends or implements those classes
     * @return
     */
    public static boolean isSubtype(JavaClass javaClass, String... superClasses) {
        return isSubtype(javaClass.getClassName(),superClasses);
    }

    /**
     * Test if the given class is a subtype of ONE of the super classes given.
     * <br/>
     * The following test that the class is a subclass of Hashtable.
     * <pre>
     * boolean isHashtable = InterfaceUtils.isSubtype( classThatCouldBeAHashTable, "java.util.Hashtable");
     * </pre>
     *
     * @param className Class to test
     * @param superClasses If classes extends or implements those classes
     * @return
     */
    public static boolean isSubtype(String className, String... superClasses) {<FILL_FUNCTION_BODY>}
}

        for(String potentialSuperClass : superClasses) {
            try {
                if(Hierarchy.isSubtype(className, potentialSuperClass)) {
                    return true;
                }
            } catch (ClassNotFoundException e) {
                AnalysisContext.reportMissingClass(e);
            }
        }
        return false;
    
<no_super_class>