1 package cz.cuni.amis.utils.collections; 2 3 import java.util.Collection; 4 import java.util.HashSet; 5 6 import cz.cuni.amis.utils.ClassUtils; 7 8 /** 9 * HashSet that provides extended meaning of the .containsClass(cls) method. 10 * <p><p> 11 * .contains(cls) first probes for class's ancestors 12 * and interfaces. The operation is then run against all of them. 13 * 14 * @author Jimmy 15 */ 16 public class HashSetClass extends HashSet<Class> { 17 18 /** 19 * Returns class that is part of 'arg0' ancestors/interface classes. 20 * @param arg0 21 * @return 22 */ 23 public Class containsClass(Class arg0) { 24 Collection<Class> classes = ClassUtils.getSubclasses((Class)arg0); 25 for (Class cls : classes) { 26 if (contains(cls)) return cls; 27 } 28 return null; 29 } 30 31 }