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.creator;
 
 

Author(s):
modified by jflute (originated in Seasar)
 
 public class ComponentCreatorImpl implements ComponentCreator {
 
     private final NamingConvention namingConvention;
 
     public static final String instanceDef_BINDING = "bindingType=may";
     private InstanceDef instanceDef;
 
     public static final String autoBindingDef_BINDING = "bindingType=may";
     private AutoBindingDef autoBindingDef;
 
     public static final String externalBinding_BINDING = "bindingType=may";
     private boolean externalBinding = false;
 
     public static final String enableInterface_BINDING = "bindingType=may";
     private boolean enableInterface = false;
 
     public static final String enableAbstract_BINDING = "bindingType=may";
     private boolean enableAbstract = false;
 
     private String nameSuffix;
     private ComponentCustomizer customizer;
 
     public ComponentCreatorImpl(NamingConvention namingConvention) {
         if (namingConvention == null) {
             throw new EmptyRuntimeException("namingConvetion");
         }
         this. = namingConvention;
     }
 
     public NamingConvention getNamingConvention() {
         return ;
     }
 
     public InstanceDef getInstanceDef() {
         return ;
     }
 
     public void setInstanceDef(InstanceDef instanceDef) {
         this. = instanceDef;
     }
 
     public AutoBindingDef getAutoBindingDef() {
         return ;
     }
 
     public void setAutoBindingDef(AutoBindingDef autoBindingDef) {
         this. = autoBindingDef;
     }
 
     public boolean isExternalBinding() {
         return ;
     }
 
     public void setExternalBinding(boolean externalBinding) {
         this. = externalBinding;
     }
 
     public boolean isEnableInterface() {
         return ;
     }
 
     public void setEnableInterface(boolean enableInterface) {
         this. = enableInterface;
     }
 
     public boolean isEnableAbstract() {
         return ;
     }
    public void setEnableAbstract(boolean enableAbstract) {
        this. = enableAbstract;
    }
    public String getNameSuffix() {
        return ;
    }
    public void setNameSuffix(String nameSuffix) {
        this. = nameSuffix;
    }
    protected ComponentCustomizer getCustomizer() {
        return ;
    }
    protected void setCustomizer(ComponentCustomizer customizer) {
        this. = customizer;
    }
    public ComponentDef createComponentDef(Class<?> componentClass) {
        if (!.isTargetClassName(componentClass.getName(), )) {
            return null;
        }
        Class<?> targetClass = .toCompleteClass(componentClass);
        if (targetClass.isInterface()) {
            if (!isEnableInterface()) {
                return null;
            }
        } else if (Modifier.isAbstract(targetClass.getModifiers())) {
            if (!isEnableAbstract()) {
                return null;
            }
        }
        AnnotationHandler handler = AnnotationHandlerFactory.getAnnotationHandler();
        ComponentDef cd = handler.createComponentDef(targetClass);
        if (cd.getComponentName() == null) {
            cd.setComponentName(.fromClassNameToComponentName(targetClass.getName()));
        }
        handler.appendDI(cd);
        customize(cd);
        handler.appendInitMethod(cd);
        handler.appendDestroyMethod(cd);
        handler.appendAspect(cd);
        handler.appendInterType(cd);
        return cd;
    }
    public ComponentDef createComponentDef(String componentName) {
        if (!isTargetComponentName(componentName)) {
            return null;
        }
        Class<?> componentClass = .fromComponentNameToClass(componentName);
        if (componentClass == null) {
            return null;
        }
        return createComponentDef(componentClass);
    }
    public boolean isTargetComponentName(String componentName) {
        return componentName.endsWith();
    }
    protected void customize(ComponentDef componentDef) {
        if ( != null) {
            .customize(componentDef);
        }
    }
New to GrepCode? Check out our FAQ X