Open Source Repository

Home /jodd/jodd-3.3.2 | Repository Home



jodd/introspector/Introspector.java
// Copyright (c) 2003-2012, Jodd Team (jodd.org). All Rights Reserved.

package jodd.introspector;


/**
 * Provides introspection analysis against any java class.
 * Implementations may cache {@link ClassDescriptor} objects to improve performance.
 @see AccessibleIntrospector
 @see SupportedIntrospector
 @see WeakIntrospector
 */
public interface Introspector {
  /**
   * Returns the {@link jodd.introspector.ClassDescriptor} object for specified class.
   */
  ClassDescriptor lookup(Class type);

  /**
   * Registers new class type. If type already registered, it will be
   * reset and registered again with new class descriptor.
   */
  ClassDescriptor register(Class type);

  /**
   * Resets current cache.
   */
  void reset();

  /**
   * Returns simple statistics information about all cached descriptors and their usage.
   */
  String getStatistics();
}