1 15 package org.apache.tapestry.annotations; 16 17 import java.lang.reflect.Method ; 18 19 import org.apache.hivemind.HiveMind; 20 import org.apache.hivemind.Location; 21 import org.apache.tapestry.bean.LightweightBeanInitializer; 22 import org.apache.tapestry.enhance.EnhancementOperation; 23 import org.apache.tapestry.spec.BeanSpecification; 24 import org.apache.tapestry.spec.IBeanSpecification; 25 import org.apache.tapestry.spec.IComponentSpecification; 26 27 34 public class BeanAnnotationWorker implements MethodAnnotationEnhancementWorker 35 { 36 public void performEnhancement(EnhancementOperation op, IComponentSpecification spec, 37 Method method, Location location) 38 { 39 Bean bean = method.getAnnotation(Bean.class); 40 String propertyName = AnnotationUtils.getPropertyName(method); 41 42 Class beanClass = bean.value(); 43 if (beanClass.equals(Object .class)) 44 beanClass = op.getPropertyType(propertyName); 45 46 IBeanSpecification bs = new BeanSpecification(); 47 48 51 bs.setClassName(beanClass.getName()); 52 bs.setPropertyName(propertyName); 53 bs.setLocation(location); 54 55 57 bs.setLifecycle(bean.lifecycle().getBeanLifecycle()); 58 59 String initializer = bean.initializer(); 60 61 if (HiveMind.isNonBlank(initializer)) 62 bs.addInitializer(new LightweightBeanInitializer(initializer)); 63 64 spec.addBeanSpecification(propertyName, bs); 65 } 66 67 } 68 | Popular Tags |