Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2013 Red Hat, Inc. and/or its affiliates.
   *
   * Licensed under the Eclipse Public License version 1.0, available at
   * http://www.eclipse.org/legal/epl-v10.html
   */
  package org.jboss.forge.arquillian.services;
  
 import java.util.Set;
 

Author(s):
Lincoln Baxter, III
 
 public class ReflectionServiceRegistry implements ServiceRegistry
 {
    private final Logger log = Logger.getLogger(getClass().getName());
 
    private final Addon addon;
    private final Set<Class<?>> serviceTypes;
 
    public ReflectionServiceRegistry(Furnace furnaceAddon addonSet<Class<?>> serviceTypes)
    {
       this. = addon;
       this. = serviceTypes;
    }
 
    @Override
    public <T> Set<ExportedInstance<T>> getExportedInstances(Class<T> requestedType)
    {
       Set<ExportedInstance<T>> result = new HashSet<ExportedInstance<T>>();
       for (Class<?> type : )
       {
          if (requestedType.isAssignableFrom(type))
          {
             result.add(new ReflectionExportedInstance<T>(requestedType));
          }
       }
       return result;
    }
 
    @Override
    @SuppressWarnings("unchecked")
    public <T> Set<ExportedInstance<T>> getExportedInstances(String typeName)
    {
       Set<ExportedInstance<T>> result = new HashSet<ExportedInstance<T>>();
       if (ClassLoaders.containsClass(.getClassLoader(), typeName))
       {
          Class<T> type = (Class<T>) ClassLoaders.loadClass(.getClassLoader(), typeName);
          result.addAll(getExportedInstances(type));
       }
       return result;
    }
 
    @Override
    @SuppressWarnings("unchecked")
    public <T> ExportedInstance<T> getExportedInstance(final Class<T> requestedType)
    {
       Assert.notNull(requestedType"Requested Class type may not be null");
       if (!ClassLoaders.ownsClass(.getClassLoader(), requestedType))
       {
          .fine("Class " + requestedType.getName() + " is not present in this addon [" +  + "]");
       }
 
       for (Class<?> type : )
       {
          if (requestedType.isAssignableFrom(type))
          {
             return new ReflectionExportedInstance<T>(, (Class<T>) type);
          }
       }
       return null;
    }
 
    @Override
    @SuppressWarnings("unchecked")
    public <T> ExportedInstance<T> getExportedInstance(String type)
    {
       if (ClassLoaders.containsClass(.getClassLoader(), type))
       {
          Class<T> clazz = (Class<T>) ClassLoaders.loadClass(.getClassLoader(), type);
          return getExportedInstance(clazz);
       }
       return null;
    }
 
    @Override
    public Set<Class<?>> getExportedTypes()
    {
      return Collections.unmodifiableSet();
   }
   public <T> Set<Class<T>> getExportedTypes(Class<T> type)
   {
      Set<Class<T>> result = new HashSet<Class<T>>();
      for (Class<?> serviceType : )
      {
         if (type.isAssignableFrom(serviceType))
         {
            result.add(type);
         }
      }
      return result;
   }
   public boolean hasService(Class<?> clazz)
   {
      return !getExportedTypes(clazz).isEmpty();
   }
   public boolean hasService(String clazz)
   {
      if (ClassLoaders.containsClass(.getClassLoader(), clazz))
         return hasService(ClassLoaders.loadClass(.getClassLoader(), clazz));
      return false;
   }
New to GrepCode? Check out our FAQ X