Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2014-2015 the original author or authors.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
  * either express or implied. See the License for the specific language
  * governing permissions and limitations under the License.
  */
 package org.lastaflute.di.core.factory.defbuilder.impl;
 
 

Parameters:
<ANNO> The type of annotation.
Author(s):
modified by jflute (originated in Seasar)
 
 public abstract class AbstractPropertyDefBuilder<ANNO extends Annotationimplements PropertyDefBuilder {
 
     protected final AnnotationHandler handler = AnnotationHandlerFactory.getAnnotationHandler();
 
     public AbstractPropertyDefBuilder() {
     }
 
     @Override
     public PropertyDef createPropertyDef(AnnotationHandler annotationHandlerBeanDesc beanDescPropertyDesc propertyDesc) {
         if (!propertyDesc.hasWriteMethod()) {
             return null;
         }
         final Method method = propertyDesc.getWriteMethod();
         final ANNO annotation = method.getAnnotation(getAnnotationType());
         return annotation != null ? createPropertyDef(propertyDesc.getPropertyName(), .annotation) : null;
     }
 
     @Override
     public PropertyDef createPropertyDef(AnnotationHandler annotationHandlerBeanDesc beanDescField field) { // #injection_point
         final ANNO annotation = field.getAnnotation(getAnnotationType());
         return annotation != null ? createPropertyDef(field.getName(), .annotation) : null;
     }
 
     protected abstract Class<ANNO> getAnnotationType();
 
     protected abstract PropertyDef createPropertyDef(String nameAccessTypeDef accessTypeDef, ANNO annotation);
 
     protected ComponentDef createComponentDef(final Class<?> componentClass) {
         return createComponentDef(componentClass.);
     }
 
     protected ComponentDef createComponentDef(final Class<?> componentClassfinal InstanceDef instanceDef) {
         final ComponentDef componentDef = .createComponentDef(componentClassinstanceDef);
         .appendDI(componentDef);
         .appendAspect(componentDef);
         .appendInterType(componentDef);
         .appendInitMethod(componentDef);
         .appendDestroyMethod(componentDef);
         return componentDef;
     }
 
     protected PropertyDef createPropertyDef(final String propertyNamefinal AccessTypeDef accessTypeDef) {
         return createPropertyDef(propertyNameaccessTypeDef"");
     }
 
     protected PropertyDef createPropertyDef(final String propertyNamefinal AccessTypeDef accessTypeDeffinal String expression) {
         return createPropertyDef(propertyNameaccessTypeDefexpressionnull);
     }
 
     protected PropertyDef createPropertyDef(final String propertyNamefinal AccessTypeDef accessTypeDeffinal ComponentDef child) {
         return createPropertyDef(propertyNameaccessTypeDef""child);
     }
 
     protected PropertyDef createPropertyDef(final String propertyNamefinal AccessTypeDef accessTypeDeffinal String expression,
             final ComponentDef child) {
         final PropertyDef propertyDef = new PropertyDefImpl(propertyName);
         propertyDef.setAccessTypeDef(accessTypeDef);
         propertyDef.setBindingTypeDef(.);
        if (!LdiStringUtil.isEmpty(expression)) {
            propertyDef.setExpression(new ScriptingExpression(expression));
        }
        if (child != null) {
            propertyDef.setChildComponentDef(child);
        }
        return propertyDef;
    }
New to GrepCode? Check out our FAQ X