org.weda.enhance.impl
Class ObjectEnhancerImpl

java.lang.Object
  extended by org.weda.enhance.impl.ObjectEnhancerImpl
All Implemented Interfaces:
net.sf.cglib.proxy.Callback, net.sf.cglib.proxy.MethodInterceptor, ObjectEnhancer

public class ObjectEnhancerImpl
extends java.lang.Object
implements ObjectEnhancer, net.sf.cglib.proxy.MethodInterceptor

Author:
Mikhail Titov

Field Summary
static ObjectEnhancer INSTANCE
           
 
Constructor Summary
ObjectEnhancerImpl()
           
 
Method Summary
 java.lang.Class enhanceClass(java.lang.Class clazz)
          Метод расширяет класс в случае если в классе есть методы без параметров возвращающих не void и имеющих аннотацию org.weda.annotation.InjectObject.
 void init()
           
 void initObject(java.lang.Object object)
          Если object объект расширенного класса, тогда объект инициализируется таким образом что бы методы object аннотированные org.weda.annotation.InjectObject возвращали корректные значения.
 java.lang.Object intercept(java.lang.Object object, java.lang.reflect.Method method, java.lang.Object[] object0, net.sf.cglib.proxy.MethodProxy methodProxy)
           
 java.lang.Object newInstance(java.lang.Class clazz)
          Метод создает экземпляр класса.
 void setObjectProvider(HivemindObjectProvider objectProvider)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INSTANCE

public static ObjectEnhancer INSTANCE
Constructor Detail

ObjectEnhancerImpl

public ObjectEnhancerImpl()
Method Detail

init

public void init()

enhanceClass

public java.lang.Class enhanceClass(java.lang.Class clazz)
                             throws ObjectEnhancerException
Description copied from interface: ObjectEnhancer
Метод расширяет класс в случае если в классе есть методы без параметров возвращающих не void и имеющих аннотацию org.weda.annotation.InjectObject.

Specified by:
enhanceClass in interface ObjectEnhancer
Returns:
расширенный класс или тот же класс что передавался в параметре если расширять класс нет необходимости.
Throws:
ObjectEnhancerException - если возникла ошибка при расширении класса или в классе обнаружены методы имеющие аннотацию org.weda.annotation.InjectObject но либо метод имеет параметры, либо возвращает void.
See Also:
ObjectEnhancer.newInstance(Class), ObjectEnhancer.initObject(Object)

newInstance

public java.lang.Object newInstance(java.lang.Class clazz)
                             throws ObjectEnhancerException
Description copied from interface: ObjectEnhancer
Метод создает экземпляр класса. Если clazz расширен методом ObjectEnhancer.enhanceClass(Class) тогда после создания экземляра будет вызван метод ObjectEnhancer.initObject(Object).

Specified by:
newInstance in interface ObjectEnhancer
Throws:
ObjectEnhancerException
See Also:
#enchanceClass(Class)

initObject

public void initObject(java.lang.Object object)
                throws ObjectEnhancerException
Description copied from interface: ObjectEnhancer
Если object объект расширенного класса, тогда объект инициализируется таким образом что бы методы object аннотированные org.weda.annotation.InjectObject возвращали корректные значения.

Specified by:
initObject in interface ObjectEnhancer
Throws:
ObjectEnhancerException
See Also:
#enchanceClass(Class), ObjectEnhancer.newInstance(Class)

intercept

public java.lang.Object intercept(java.lang.Object object,
                                  java.lang.reflect.Method method,
                                  java.lang.Object[] object0,
                                  net.sf.cglib.proxy.MethodProxy methodProxy)
                           throws java.lang.Throwable
Specified by:
intercept in interface net.sf.cglib.proxy.MethodInterceptor
Throws:
java.lang.Throwable

setObjectProvider

public void setObjectProvider(HivemindObjectProvider objectProvider)


Copyright © 2005-2006 . All Rights Reserved.