org.weda.enhance.impl
Class ObjectEnhancerImpl
java.lang.Object
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
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 |
INSTANCE
public static ObjectEnhancer INSTANCE
ObjectEnhancerImpl
public ObjectEnhancerImpl()
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.