FileDocCategorySizeDatePackage
ClassInfoDemo.javaAPI DocExample3154Sun Dec 14 22:47:40 GMT 2003oreilly.hcj.reflection

ClassInfoDemo.java

/*
 *     file: ClassInfoDemo.java
 *  package: oreilly.hcj.reflection
 *
 * This software is granted under the terms of the Common Public License,
 * CPL, which may be found at the following URL:
 * http://www-124.ibm.com/developerworks/oss/CPLv1.0.htm
 *
 * Copyright(c) 2003-2005 by the authors indicated in the @author tags.
 * All Rights are Reserved by the various authors.
 *
########## DO NOT EDIT ABOVE THIS LINE ########## */

package oreilly.hcj.reflection;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

/**  
 * Demonstrates usage of various class information methods.
 *
 * @author <a href=mailto:kraythe@arcor.de>Robert Simmons jr. (kraythe)</a>
 * @version $Revision: 1.3 $
 */
public class ClassInfoDemo {
	/** 
	 * Demonstration Method
	 *
	 * @param args Demonstration Method.
	 */
	public static void main(final String[] args) {
		final Set classes = new HashSet();
		classes.add(Class.class);
		classes.add(Comparable.class);
		classes.add(Serializable.class);
		classes.add(Integer.class);
		classes.add(int.class);
		classes.add(Float[].class);
		classes.add(String.class);
		classes.add(double[].class);
		classes.add(boolean.class);

		// --
		System.out.println("Finding interface Class objects in the set.");
		Iterator iter = classes.iterator();
		while (iter.hasNext()) {
			useIsInterface((Class)iter.next());
		}

		System.out.println("\nFinding primitive Class objects in the set.");
		iter = classes.iterator();
		while (iter.hasNext()) {
			useIsPrimitive((Class)iter.next());
		}

		System.out.println("\nFinding array Class objects in the set.");
		iter = classes.iterator();
		while (iter.hasNext()) {
			useIsArray((Class)iter.next());
		}
	}

	/** 
	 * Demonstrates usage of <tt>isArray</tt> from Class.
	 *
	 * @param dataType The data type to check.
	 *
	 * @throws NullPointerException If the user passes null for dataType.
	 */
	public static void useIsArray(final Class dataType) {
		if (dataType == null) {
			throw new NullPointerException();
		}
		if (dataType.isArray()) {
			System.out.print(dataType.getName());
			System.out.println("\t ==> " + dataType.getComponentType());
		}
	}

	/** 
	 * Demonstrates usage of <tt>isInterface</tt> from Class.
	 *
	 * @param dataType The data type to check.
	 *
	 * @throws NullPointerException If the user passes null for dataType.
	 */
	public static void useIsInterface(final Class dataType) {
		if (dataType == null) {
			throw new NullPointerException();
		}
		if (dataType.isInterface()) {
			System.out.println(dataType.getName());
		}
	}

	/** 
	 * Demonstrates usage of <tt>isPrimitive</tt> from Class.
	 *
	 * @param dataType The data type to check.
	 *
	 * @throws NullPointerException If the user passes null for dataType.
	 */
	public static void useIsPrimitive(final Class dataType) {
		if (dataType == null) {
			throw new NullPointerException();
		}
		if (dataType.isPrimitive()) {
			System.out.println(dataType.getName());
		}
	}
}

/* ########## End of File ########## */