Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source.
   * Copyright 2008, Red Hat Middleware LLC, and individual contributors
   * as indicated by the @author tags. See the copyright.txt file in the
   * distribution for a full listing of individual contributors.
   *
   * This is free software; you can redistribute it and/or modify it
   * under the terms of the GNU Lesser General Public License as
   * published by the Free Software Foundation; either version 2.1 of
  * the License, or (at your option) any later version.
  *
  * This software is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
 package org.jboss.spring.facade;
 
 import java.util.*;
 
 import  org.jboss.beans.metadata.spi.AnnotationMetaData;
 import  org.jboss.beans.metadata.spi.factory.AbstractBeanFactory;
 import  org.jboss.dependency.spi.ControllerContext;
 import  org.jboss.dependency.spi.ControllerState;
 import  org.jboss.dependency.spi.ControllerStateModel;
 import  org.jboss.dependency.spi.tracker.ContextFilter;
 import  org.jboss.kernel.Kernel;
 import  org.jboss.kernel.spi.dependency.KernelController;
 import  org.jboss.kernel.spi.dependency.KernelControllerContext;
ListableBeanFactory facade over MC's KernelController.

Author(s):
Ales Justin
 
 
     private KernelController kernelController;
 
     public KernelControllerListableBeanFactory(KernelController kernelController) {
         super(kernelController);
         this. = kernelController;
     }
 
     public KernelControllerListableBeanFactory(Kernel kernel) {
         super(kernel != null ? kernel.getController() : null);
         this. = kernel.getController();
     }
 
     public boolean containsBeanDefinition(String name) {
         return getContext(namenull) != null;
     }
 
     public int getBeanDefinitionCount() {
         int count = 0;
         ControllerStateModel stateModel = .getStates();
         for (ControllerState state : stateModel) {
             Set<ControllerContext> byState = .getContextsByState(state);
             count += byState.size();
         }
         return count;
     }
 
     public String[] getBeanDefinitionNames() {
         List<Stringresult = new ArrayList<String>();
         ControllerStateModel stateModel = .getStates();
         for (ControllerState state : stateModel) {
             Set<ControllerContext> byState = .getContextsByState(state);
             for (ControllerContext context : byState) {
                 result.add(context.getName().toString());
             }
         }
         return result.toArray(new String[result.size()]);
     }
 
     public String[] getBeanNamesForType(Class clazz) {
         return getBeanNamesForType(clazztruetrue);
     }
 
     public String[] getBeanNamesForType(Class clazzboolean includePrototypesboolean allowEagerInit) {
         List<Stringresult = new ArrayList<String>();
         Set<ControllerContext> contexts = .getInstantiatedContexts(clazz);
         if (contexts != null && !contexts.isEmpty()) {
             for (ControllerContext context : contexts) {
                 result.add(context.getName().toString());
             }
         }
         if (includePrototypes) {
             Set<ControllerContext> factories = .getInstantiatedContexts(AbstractBeanFactory.class);
             if (factories != null && !factories.isEmpty()) {
                for (ControllerContext kcc : factories) {
                    Class<?> prototypeClass = getPrototypeClass(kcc);
                    if (prototypeClass != null) {
                        if (clazz.isAssignableFrom(prototypeClass)) {
                            result.add(kcc.getName().toString());
                        }
                    } else if (allowEagerInit) {
                        Object bean = createBean(kcc.getTarget());
                        if (clazz.isInstance(bean)) {
                            result.add(kcc.getName().toString());
                        }
                    }
                }
            }
        }
        return result.toArray(new String[result.size()]);
    }
    public Map getBeansOfType(Class clazzthrows BeansException {
        return getBeansOfType(clazztruetrue);
    }
    public Map getBeansOfType(Class clazzboolean includePrototypesboolean allowEagerInitthrows BeansException {
        Map<StringObjectresult = new HashMap<StringObject>();
        Set<ControllerContext> contexts = .getContexts(clazz, ControllerState.INSTALLED);
        for (ControllerContext context : contexts) {
            Object target = context.getTarget();
            result.put(context.getName().toString(), target);
        }
        if (includePrototypes) {
            Set<ControllerContext> factories = .getInstantiatedContexts(AbstractBeanFactory.class);
            if (factories != null && !factories.isEmpty()) {
                for (ControllerContext kcc : factories) {
                    Class<?> prototypeClass = getPrototypeClass(kcc);
                    if (prototypeClass != null) {
                        if (clazz.isAssignableFrom(prototypeClass)) {
                            result.put(kcc.getName().toString(), createBean(kcc.getTarget()));
                        }
                    } else if (allowEagerInit) {
                        Object bean = createBean(kcc.getTarget());
                        if (clazz.isInstance(bean)) {
                            result.put(kcc.getName().toString(), bean);
                        }
                    }
                }
            }
        }
        return result;
    }
    public Map<StringObjectgetBeansWithAnnotation(final Class<? extends AnnotationannotationTypethrows BeansException {
        Set<ControllerContext> controllerContexts = .filter(.getContextsByState(ControllerState.INSTALLED), new ContextFilter() {
            public boolean accepts(ControllerContext context) {
                Set<AnnotationMetaData> annotationMetaDataSet = ((KernelControllerContext) context).getBeanMetaData().getAnnotations();
                for (AnnotationMetaData annotationMetaData : annotationMetaDataSet) {
                    if (annotationType.isAssignableFrom(annotationMetaData.getAnnotationInstance().annotationType())) {
                        return true;
                    }
                }
                return false;
            }
        });
        Map<StringObjectreturnedObjects = new HashMap<StringObject>();
        for (ControllerContext controllerContext : controllerContexts) {
            returnedObjects.put((StringcontrollerContext.getName(), controllerContext.getTarget());
        }
        return returnedObjects;
    }
    public <A extends Annotation> A findAnnotationOnBean(String beanNameClass<A> annotationType) {
        return null;  //To change body of implemented methods use File | Settings | File Templates.
    }
    public <T> T getBean(Class<T> tClassthrows BeansException {
        Set<ControllerContext> foundContexts = new HashSet<ControllerContext>();
        for (ControllerContext controllerContext : .getContexts(tClass, ControllerState.INSTALLED)) {
        }
        if (foundContexts.size() != 1) {
            throw new NoSuchBeanDefinitionException(tClass"No controller of this class found");
        } else {
            return (T) foundContexts.iterator().next().getTarget();
        }
    }
New to GrepCode? Check out our FAQ X