com.opensymphony.xwork2.util.profiling
Class ObjectProfiler

java.lang.Object
  extended by com.opensymphony.xwork2.util.profiling.ObjectProfiler

public class ObjectProfiler
extends Object

Author:
Scott Farquhar

Constructor Summary
ObjectProfiler()
           
 
Method Summary
static Object getProfiledObject(Class interfaceClazz, Object o)
          Given a class, and an interface that it implements, return a proxied version of the class that implements the interface.
static String getTrimmedClassName(Method method)
          Given a method, get the Method name, with no package information.
static Object profiledInvoke(Method target, Object value, Object[] args)
          A profiled call Method.invoke(java.lang.Object, java.lang.Object[]).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ObjectProfiler

public ObjectProfiler()
Method Detail

getProfiledObject

public static Object getProfiledObject(Class interfaceClazz,
                                       Object o)
Given a class, and an interface that it implements, return a proxied version of the class that implements the interface.

The usual use of this is to profile methods from Factory objects:

 public PersistenceManager getPersistenceManager()
 {
   return new DefaultPersistenceManager();
 }

 instead write:
 public PersistenceManager getPersistenceManager()
 {
   return ObjectProfiler.getProfiledObject(PersistenceManager.class, new DefaultPersistenceManager());
 }
 

A side effect of this is that you will no longer be able to downcast to DefaultPersistenceManager. This is probably a *good* thing.

Parameters:
interfaceClazz - The interface to implement.
o - The object to proxy
Returns:
A proxied object, or the input object if the interfaceClazz wasn't an interface.

profiledInvoke

public static Object profiledInvoke(Method target,
                                    Object value,
                                    Object[] args)
                             throws IllegalAccessException,
                                    InvocationTargetException
A profiled call Method.invoke(java.lang.Object, java.lang.Object[]). If UtilTimerStack.isActive() returns false, then no profiling is performed.

Throws:
IllegalAccessException
InvocationTargetException

getTrimmedClassName

public static String getTrimmedClassName(Method method)
Given a method, get the Method name, with no package information.



Copyright © 2009 OpenSymphony. All Rights Reserved.