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.bean.builtin;
Built-in bean that can be decorated by a javax.enterprise.inject.spi.Decorator

Author(s):
Jozef Hartinger
public abstract class AbstractDecorableBuiltInBean<T> extends AbstractBuiltInBean<T> implements DecorableBean<T> {
    private final CurrentInjectionPoint cip;
    protected AbstractDecorableBuiltInBean(BeanManagerImpl beanManagerClass<T> type) {
        super(new StringBeanIdentifier(BeanIdentifiers.forBuiltInBean(beanManagertypenull)), beanManagertype);
        this. = beanManager.getServices().get(CurrentInjectionPoint.class);
    }
    @Override
    public T create(CreationalContext<T> creationalContext) {
        InjectionPoint ip = getInjectionPoint();
        List<Decorator<?>> decorators = getDecorators(ip);
        T instance = newInstance(ipcreationalContext);
        if (decorators.isEmpty()) {
            return instance;
        }
        return Decorators.getOuterDelegate(thisinstancecreationalContextgetProxyClass(), .peek(), getBeanManager(), decorators);
    }
    protected abstract T newInstance(InjectionPoint ipCreationalContext<T> creationalContext);
    protected abstract List<Decorator<?>> getDecorators(InjectionPoint ip);
    protected abstract Class<T> getProxyClass();
        return cip.peek();
    }
    @Override
    public Class<?> getBeanClass() {
        return getClass();
    }
    @Override
    public List<Decorator<?>> getDecorators() {
        return .resolveDecorators(getTypes(), getQualifiers());
    }
New to GrepCode? Check out our FAQ X