/** * {@inheritDoc} */ @Override public String nextResourceName() { return nextResourceClass().getName(); }
/** * Returns the next resource name in the iteration. * * @return The next resource name in the iteration */ public String nextResourceName() { return nextResource().getName(); }
/** * {@inheritDoc} */ @Override public Resource nextResource() { return nextResourceClass(); }
private ResourceClass<T> getNextResource() { while (inputNames.hasNext() && (classes == null || !classes.hasNext())) { classes = findResourceClasses(inputNames.nextResourceName()); } return (classes != null && classes.hasNext()) ? classes.nextResourceClass() : null; } };
public static ResourceClassIterator getResourceClassIterator(Class spi) { ResourceNameIterator it = getNameDiscoverer().findResourceNames(spi.getName()); return new DiscoverClasses(loaders).findResourceClasses(it); }
private S getNextClassInstance() { while (services.hasNext()) { ResourceClass<S> info = services.nextResourceClass(); try { return spi.newInstance(info.loadClass()); } catch (Exception e) { // ignore } catch (LinkageError le) { // ignore } } return null; } };
private Resource getNextResource() { while (inputNames.hasNext() && (resources == null || !resources.hasNext())) { resources = findResources(inputNames.nextResourceName()); } return (resources != null && resources.hasNext()) ? resources.nextResource() : null; } };
ResourceNameIterator classes = new DiscoverClasses().findResourceClasses(Object.class); while (classes.hasNext()) { String className = classes.nextResourceClass().getName(); Class clazz = classes.nextResourceClass().loadClass(); }
private String getNextResourceName() { while (inputNames.hasNext() && (resourceNames == null || !resourceNames.hasNext())) { resourceNames = findResourceNames(inputNames.nextResourceName()); } return (resourceNames != null && resourceNames.hasNext()) ? resourceNames.nextResourceName() : null; } };
private ResourceNameIterator getNextIterator() { while (idx < size()) { ResourceNameIterator iter = getResourceNameDiscover(idx++).findResourceNames(resourceName); if (iter.hasNext()) { return iter; } } return null; } };
public boolean hasNext() { if (iterator == null || !iterator.hasNext()) { iterator = getNextIterator(); if (iterator == null) { return false; } } return iterator.hasNext(); }
public String nextResourceName() { return iterator.nextResourceName(); }
private List<String> getNextClassNames() { while (files.hasNext()) { List<String> results = readServices(files.nextResource()); if (results != null && results.size() > 0) { return results; } } return null; } };
/** * {@inheritDoc} */ @Override public String toString() { return "Resource[" + getName() + ", " + getResource() + ", " + getClassLoader() + "]"; }
/** * {@inheritDoc} */ @Override public String toString() { return "ResourceClass[" + getName() + ", " + getResource() + ", " + getClassLoader() + "]"; }
public Class<? extends T> run() { try { @SuppressWarnings("unchecked") // this can raise a ClassCastException at runtime Class<S> returned = (Class<S>) getClassLoader().loadClass(getName()); return returned; } catch (ClassNotFoundException e) { return null; } } });
/** * Throws exception if {@code impl} does not * implement or extend the SPI. * * @param spi The SPI type * @param impl The class has to be verified is a SPI implementation/extension * @throws DiscoveryException if the input implementation class is not an SPI implementation */ public static void verifyAncestory(Class<?> spi, Class<?> impl) throws DiscoveryException { if (spi == null) { throw new DiscoveryException("No interface defined!"); } if (impl == null) { throw new DiscoveryException("No implementation defined for " + spi.getName()); } if (!spi.isAssignableFrom(impl)) { throw new DiscoveryException("Class " + impl.getName() + " does not implement " + spi.getName()); } }
public static ResourceClassIterator getResourceClassIterator(Class spi) { ResourceNameIterator it = getNameDiscoverer().findResourceNames(spi.getName()); return new DiscoverClasses(loaders).findResourceClasses(it); }
/** * Returns an array containing all of the elements in this {@link ResourceIterator} in proper sequence. * * @param iterator The {@link ResourceIterator} containing the * @return An array containing the elements of the given {@link ResourceIterator} */ public static Resource[] toArray(ResourceIterator iterator) { List<Resource> resourceList = new LinkedList<Resource>(); while (iterator.hasNext()) { resourceList.add(iterator.nextResource()); } Resource[] resources = new Resource[resourceList.size()]; resourceList.toArray(resources); return resources; }
public static ResourceClassIterator getResourceClassIterator(Class spi) { ResourceNameIterator it = getNameDiscoverer().findResourceNames(spi.getName()); return new DiscoverClasses(loaders).findResourceClasses(it); }