Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
  * regarding copyright ownership.  The ASF licenses this file
  * to you 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.apache.tuscany.sca.implementation.java.injection;
Injects a value created by an org.apache.tuscany.sca.core.factory.ObjectFactory using a given method

Version:
$Rev: 986676 $ $Date: 2010-08-18 16:52:28 +0300 (Wed, 18 Aug 2010) $
public class MethodInjector<T> implements Injector<T> {
    private final Method method;
    private final ObjectFactory<?> objectFactory;
    public MethodInjector(Method aMethodObjectFactory<?> objectFactory) {
        assert aMethod != null;
        assert objectFactory != null;
        this. = aMethod;
        // Allow privileged access to set accessibility. Requires ReflectPermission in security
        // policy.
        AccessController.doPrivileged(new PrivilegedAction<Object>() {
            public Object run() {
                .setAccessible(true);
                return null;
            }
        });           
        this. = objectFactory;
    }
    public void inject(T instancethrows ObjectCreationException {
    	inject(instance.getInstance());
    }
    
    private void inject(T instanceObject value) {
        try {
            .invoke(instancevalue);
        } catch (IllegalAccessException e) {
            throw new ObjectCreationException("Method is not accessible [" +  + "]"e);
        } catch (IllegalArgumentException e) {
            throw new ObjectCreationException("Exception thrown by setter: " + .getName(), e);
        } catch (InvocationTargetException e) {
            throw new ObjectCreationException("Exception thrown by setter: " + .getName(), e);
        }
    }
	public Class<?> getType() {
	}
	public Type getGenericType() {
	}
	public void injectNull(T instancethrows ObjectCreationException {
		inject(instancenull);		
	}
New to GrepCode? Check out our FAQ X