Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package org.laughingpanda.beaninject.impl;
 
 import java.util.List;
 
 public abstract class AbstractMethodInjector extends AbstractObjectInjector {
     public AbstractMethodInjector(Object targetString name) {
         super(targetname);
     }
    public void with(Object dependency) {
        inject(dependency, Accessor.methods(.getClass()));
    }
    private void inject(Object dependencyList<Methodaccessors) {
        for (Method accessor : accessors) {
            if (match(accessordependency.getClass())) {
                inject(dependencyaccessor);
                return;
            }
        }
        onNoMatchingSetterFoundFor(dependency);
    }
    private boolean match(Method accessorClass<?> actualType) {
        Class<?>[] parameters = accessor.getParameterTypes();
        if (parameters.length != 1) {
            return false;
        }
        Class<?> expectedType = Autobox.toPrimitive(parameters[0]);
        if (!expectedType.isAssignableFrom(Autobox.toPrimitive(actualType))) {
            return false;
        }
        return match(accessor);
    }
    protected abstract boolean match(Method accessor);
    protected abstract void onNoMatchingSetterFoundFor(Object dependency);
    private void inject(Object dependencyMethod accessor) {
        try {
            if (!accessor.isAccessible()) {
                accessor.setAccessible(true);
            }
            accessor.invoke(dependency);
        } catch (Exception e) {
            throw new RuntimeException("Failure to inject to method"e);
        }
    }
New to GrepCode? Check out our FAQ X