Java Collection Contain containsClassOrSuper(Collection classNames, String className)

Here you can find the source of containsClassOrSuper(Collection classNames, String className)

Description

When working with String class names, returns true if a collection contains a given class name or the names of one superclass of the given class name.

License

Open Source License

Parameter

Parameter Description
classNames a parameter
className a parameter

Exception

Parameter Description
ClassNotFoundException an exception

Declaration

public static boolean containsClassOrSuper(Collection<String> classNames, String className)
        throws ClassNotFoundException 

Method Source Code

//package com.java2s;
/*//from  w  ww.  java2s . c  o  m
 * This file is part of the GeOxygene project source files.
 * 
 * GeOxygene aims at providing an open framework which implements OGC/ISO
 * specifications for the development and deployment of geographic (GIS)
 * applications. It is a open source contribution of the COGIT laboratory at the
 * Institut G?ographique National (the French National Mapping Agency).
 * 
 * See: http://oxygene-project.sourceforge.net
 * 
 * Copyright (C) 2005 Institut G?ographique National
 * 
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or any later version.
 * 
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 * 
 * You should have received a copy of the GNU Lesser General Public License
 * along with this library (see file LICENSE if present); if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 * 02111-1307 USA
 */

import java.util.Collection;

public class Main {
    /**
     * When working with String class names, returns true if a collection
     * contains a given class name or the names of one superclass of the given
     * class name.
     * 
     * @param classNames
     * @param className
     * @return
     * @throws ClassNotFoundException
     */
    public static boolean containsClassOrSuper(Collection<String> classNames, String className)
            throws ClassNotFoundException {
        if (classNames.contains(className)) {
            return true;
        }
        Class<?> classToCompare = Class.forName(className);
        for (String name : classNames) {
            Class<?> currentClass = Class.forName(name);
            if (currentClass.isAssignableFrom(classToCompare)) {
                return true;
            }
        }
        return false;
    }
}

Related

  1. containsAssignableClass( Collection> clses, Class clazz)
  2. containsAtLeastOne(Collection origin, Collection elements)
  3. containsAtleastOne(Collection left, Collection right)
  4. containsByClassName(Collection objects, String className)
  5. containsByIdentity(Collection collection, Object toBeFound)
  6. containsElement(Collection collect, T elem)
  7. containsIdentity(Collection collection, T element)
  8. containsIdentity(Collection objects, Object object)
  9. containsIgnoreCase(Collection c, String s)