Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source
   * Copyright 2012, Red Hat, Inc., and individual contributors
   * by the @authors tag. See the copyright.txt in the distribution for a
   * full listing of individual contributors.
   *
   * 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.jboss.weld.injection.producer;
 
 import static org.jboss.weld.util.reflection.Reflections.cast;
 
 import java.util.Set;
 
 
javax.enterprise.inject.spi.Producer implementation for producer fields.

Author(s):
Jozef Hartinger
 
 public abstract class ProducerFieldProducer<X, T> extends AbstractMemberProducer<X, T> {
 
     private final Field accessibleField;
 
     public ProducerFieldProducer(EnhancedAnnotatedField<T, ? super X> enhancedFieldDisposalMethod<?, ?> disposalMethod) {
         super(enhancedFielddisposalMethod);
         this. = AccessController.doPrivileged(new GetAccessibleCopyOfMember<Field>(enhancedField.getJavaMember()));
         checkProducerField(enhancedField);
     }
 
     protected void checkProducerField(EnhancedAnnotatedField<T, ? super X> enhancedField) {
         if (getDeclaringBean() instanceof SessionBean<?> && !enhancedField.isStatic()) {
             throw ..producerFieldOnSessionBeanMustBeStatic(enhancedFieldenhancedField.getDeclaringType());
         }
         if (enhancedField.isAnnotationPresent(Inject.class)) {
             if (getDeclaringBean() != null) {
                 throw ..injectedFieldCannotBeProducer(enhancedFieldgetDeclaringBean());
             } else {
                 throw ..injectedFieldCannotBeProducer(enhancedFieldenhancedField.getDeclaringType());
             }
         }
     }
 
     @Override
     public Set<InjectionPointgetInjectionPoints() {
         return Collections.emptySet();
     }
 
     @Override
     public abstract AnnotatedField<? super X> getAnnotated();
 
     @Override
     public T produce(Object receiverCreationalContext<T> creationalContext) {
         // unwrap if we have a proxy
         if (receiver instanceof TargetInstanceProxy) {
             receiver = Reflections.<TargetInstanceProxy<T>> cast(receiver).getTargetInstance();
         }
         try {
             return cast(.get(receiver));
         } catch (IllegalAccessException e) {
         }
     }
 
     @Override
     public String toString() {
         return getAnnotated().toString();
     }
 
         return ..producerFieldCannotHaveAWildcardBeanType(member);
     }
    }
New to GrepCode? Check out our FAQ X