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.redefiner.core;

Author(s):
modified by jflute (originated in Ymir)
    public ClassAutoPropertyAssembler(ComponentDef componentDef) {
        super(componentDef);
    }
    public void assemble(Object componentthrows IllegalPropertyRuntimeException {
        if (component == null) {
            return;
        }
        final BeanDesc beanDesc = getBeanDesc(component);
        final ComponentDef cd = getComponentDef();
        final int defSize = cd.getPropertyDefSize();
        final Set<Stringnames = new HashSet<String>();
        for (int i = 0; i < defSize; ++i) {
            final PropertyDef propDef = cd.getPropertyDef(i);
            final AccessTypeDef accessTypeDef = propDef.getAccessTypeDef();
            accessTypeDef.bind(cdpropDefcomponent);
            final String propName = propDef.getPropertyName();
            names.add(propName);
        }
        final LaContainerPreparer preparer = ClassBuilderUtils.getPreparer(getComponentDef());
        if (preparer != null) {
            names.addAll(Arrays.asList(getManualBindingProperties(preparergetComponentDef().getComponentName())));
        }
        if (cd.isExternalBinding()) {
            bindExternally(beanDesccdcomponentnames);
        }
        final int descSize = beanDesc.getPropertyDescSize();
        for (int i = 0; i < descSize; ++i) {
            final PropertyDesc propDesc = beanDesc.getPropertyDesc(i);
            final String propName = propDesc.getPropertyName();
            if (!names.contains(propName)) {
                ..bind(getComponentDef(), nullpropDesccomponent);
            }
        }
    }
    protected String[] getManualBindingProperties(LaContainerPreparer preparerString componentName) {
        final Method method = ClassBuilderUtils.findMethod(preparer.getClass(), componentName.);
        if (method != null) {
            final ManualBindingProperties annotation = method.getAnnotation(ManualBindingProperties.class);
            if (annotation != null) {
                return annotation.value();
            }
        }
        return new String[0];
    }
New to GrepCode? Check out our FAQ X