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

nyla.solutions.global.patterns.reflection.BeanClassInfo Maven / Gradle / Ivy

Go to download

Nyla Solutions Global Java API provides support for basic application utilities (application configuration, data encryption, debugger and text processing).

The newest version!
package nyla.solutions.global.patterns.reflection;

import java.io.Serializable;

import nyla.solutions.global.exception.fault.ClassNotFoundFaultException;


/**
 * This interface represents Class information like class names, 
 * generic types parameters and array component types.
 * @author Gregory Green
 *
 */
public interface BeanClassInfo extends Serializable
{
	/**
	 * The name of the class.
	 * 
	 * For a Map type this value will be
	 * beanClassName=java.util.Map
	 * 
	 * @return the class name of the input 
	 */
	public String getBeanClassName();
	
	/**
	 * The class of the object.
	 * 	For a Map type
	 * this value will be class=java.util.Map.class
	 * @return the object class
	 * @throws ClassNotFoundFaultException when the input class cannot be found in the CLASSPATH
	 */
	public Class getBeanClass()
	throws ClassNotFoundFaultException;
	

	/**
	 * The type of object (object, array or generic).
	 * The object type is the default.
	 * @return ClassType.object, ClassType.array or ClassType.generic
	 */
	public ClassType getBeanClassType();
	
	/**
	 * Returns the Class representing the component type of an array. 
	 * If this class does not represent an array class this method returns null.
	 * If type is String[], then this value will be = String.class
	 * 
	 * @return the class of the array type
	 */
	public Class getArrayComponentTypeClass();
	
	
	/**
	 * Returns the class name representing the component type of an array. 
	 * If this class does not represent an array class this method returns null.
	 * If type is String[], then this value will be "java.lang.String"
	 * @return the class name of the array type
	 */
	public String getArrayComponentTypeClassName();
	
	/**
	 * Returns an array of String that represent the type class name
	 * variables declared by the generic declaration represented 
	 * by this object, in the declaration order.
	 * 
	 * For a Map type
	 * 
	 * genericTypeClassNames=[java.lang.String, some.ObjectClass
	 * 
	 * @return of the types name for generic objects
	 */
	public String[] getGenericTypeClassNames();
	
	/**
	 * Returns an array of Classes that represent the type 
	 * variables declared by the generic declaration represented 
	 * by this object, in the declaration order.
	 * 
	 * For a Map type
	 * 
	 * genericTypeClasses=[String.class, some.ObjectClass]
	 * @return type names for generic objects
	 */
	public Class[] getGenericTypeClasses();
	
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy