src/share/classes/javax/imageio/spi/ServiceRegistry.java

Print this page
rev 9345 : 8035487: Fix raw and unchecked lint warnings in javax.imageio.spi
Reviewed-by:

*** 97,107 **** * */ public class ServiceRegistry { // Class -> Registry ! private Map categoryMap = new HashMap(); /** * Constructs a <code>ServiceRegistry</code> instance with a * set of categories taken from the <code>categories</code> * argument. --- 97,107 ---- * */ public class ServiceRegistry { // Class -> Registry ! private Map<Class<?>, SubRegistry> categoryMap = new HashMap<>(); /** * Constructs a <code>ServiceRegistry</code> instance with a * set of categories taken from the <code>categories</code> * argument.
*** 115,125 **** public ServiceRegistry(Iterator<Class<?>> categories) { if (categories == null) { throw new IllegalArgumentException("categories == null!"); } while (categories.hasNext()) { ! Class category = (Class)categories.next(); SubRegistry reg = new SubRegistry(this, category); categoryMap.put(category, reg); } } --- 115,125 ---- public ServiceRegistry(Iterator<Class<?>> categories) { if (categories == null) { throw new IllegalArgumentException("categories == null!"); } while (categories.hasNext()) { ! Class<?> category = categories.next(); SubRegistry reg = new SubRegistry(this, category); categoryMap.put(category, reg); } }
*** 215,239 **** * * @return an <code>Iterator</code> containing * <code>Class</code>objects. */ public Iterator<Class<?>> getCategories() { ! Set keySet = categoryMap.keySet(); return keySet.iterator(); } /** * Returns an Iterator containing the subregistries to which the * provider belongs. */ ! private Iterator getSubRegistries(Object provider) { ! List l = new ArrayList(); ! Iterator iter = categoryMap.keySet().iterator(); while (iter.hasNext()) { ! Class c = (Class)iter.next(); if (c.isAssignableFrom(provider.getClass())) { ! l.add((SubRegistry)categoryMap.get(c)); } } return l.iterator(); } --- 215,239 ---- * * @return an <code>Iterator</code> containing * <code>Class</code>objects. */ public Iterator<Class<?>> getCategories() { ! Set<Class<?>> keySet = categoryMap.keySet(); return keySet.iterator(); } /** * Returns an Iterator containing the subregistries to which the * provider belongs. */ ! private Iterator<SubRegistry> getSubRegistries(Object provider) { ! List<SubRegistry> l = new ArrayList<>(); ! Iterator<Class<?>> iter = categoryMap.keySet().iterator(); while (iter.hasNext()) { ! Class<?> c = iter.next(); if (c.isAssignableFrom(provider.getClass())) { ! l.add(categoryMap.get(c)); } } return l.iterator(); }
*** 266,276 **** public <T> boolean registerServiceProvider(T provider, Class<T> category) { if (provider == null) { throw new IllegalArgumentException("provider == null!"); } ! SubRegistry reg = (SubRegistry)categoryMap.get(category); if (reg == null) { throw new IllegalArgumentException("category unknown!"); } if (!category.isAssignableFrom(provider.getClass())) { throw new ClassCastException(); --- 266,276 ---- public <T> boolean registerServiceProvider(T provider, Class<T> category) { if (provider == null) { throw new IllegalArgumentException("provider == null!"); } ! SubRegistry reg = categoryMap.get(category); if (reg == null) { throw new IllegalArgumentException("category unknown!"); } if (!category.isAssignableFrom(provider.getClass())) { throw new ClassCastException();
*** 299,311 **** */ public void registerServiceProvider(Object provider) { if (provider == null) { throw new IllegalArgumentException("provider == null!"); } ! Iterator regs = getSubRegistries(provider); while (regs.hasNext()) { ! SubRegistry reg = (SubRegistry)regs.next(); reg.registerServiceProvider(provider); } } /** --- 299,311 ---- */ public void registerServiceProvider(Object provider) { if (provider == null) { throw new IllegalArgumentException("provider == null!"); } ! Iterator<SubRegistry> regs = getSubRegistries(provider); while (regs.hasNext()) { ! SubRegistry reg = regs.next(); reg.registerServiceProvider(provider); } } /**
*** 369,379 **** public <T> boolean deregisterServiceProvider(T provider, Class<T> category) { if (provider == null) { throw new IllegalArgumentException("provider == null!"); } ! SubRegistry reg = (SubRegistry)categoryMap.get(category); if (reg == null) { throw new IllegalArgumentException("category unknown!"); } if (!category.isAssignableFrom(provider.getClass())) { throw new ClassCastException(); --- 369,379 ---- public <T> boolean deregisterServiceProvider(T provider, Class<T> category) { if (provider == null) { throw new IllegalArgumentException("provider == null!"); } ! SubRegistry reg = categoryMap.get(category); if (reg == null) { throw new IllegalArgumentException("category unknown!"); } if (!category.isAssignableFrom(provider.getClass())) { throw new ClassCastException();
*** 392,404 **** */ public void deregisterServiceProvider(Object provider) { if (provider == null) { throw new IllegalArgumentException("provider == null!"); } ! Iterator regs = getSubRegistries(provider); while (regs.hasNext()) { ! SubRegistry reg = (SubRegistry)regs.next(); reg.deregisterServiceProvider(provider); } } /** --- 392,404 ---- */ public void deregisterServiceProvider(Object provider) { if (provider == null) { throw new IllegalArgumentException("provider == null!"); } ! Iterator<SubRegistry> regs = getSubRegistries(provider); while (regs.hasNext()) { ! SubRegistry reg = regs.next(); reg.deregisterServiceProvider(provider); } } /**
*** 415,427 **** */ public boolean contains(Object provider) { if (provider == null) { throw new IllegalArgumentException("provider == null!"); } ! Iterator regs = getSubRegistries(provider); while (regs.hasNext()) { ! SubRegistry reg = (SubRegistry)regs.next(); if (reg.contains(provider)) { return true; } } --- 415,427 ---- */ public boolean contains(Object provider) { if (provider == null) { throw new IllegalArgumentException("provider == null!"); } ! Iterator<SubRegistry> regs = getSubRegistries(provider); while (regs.hasNext()) { ! SubRegistry reg = regs.next(); if (reg.contains(provider)) { return true; } }
*** 449,463 **** * @exception IllegalArgumentException if there is no category * corresponding to <code>category</code>. */ public <T> Iterator<T> getServiceProviders(Class<T> category, boolean useOrdering) { ! SubRegistry reg = (SubRegistry)categoryMap.get(category); if (reg == null) { throw new IllegalArgumentException("category unknown!"); } ! return reg.getServiceProviders(useOrdering); } /** * A simple filter interface used by * <code>ServiceRegistry.getServiceProviders</code> to select --- 449,465 ---- * @exception IllegalArgumentException if there is no category * corresponding to <code>category</code>. */ public <T> Iterator<T> getServiceProviders(Class<T> category, boolean useOrdering) { ! SubRegistry reg = categoryMap.get(category); if (reg == null) { throw new IllegalArgumentException("category unknown!"); } ! @SuppressWarnings("unchecked") ! Iterator<T> it = (Iterator<T>)reg.getServiceProviders(useOrdering); ! return it; } /** * A simple filter interface used by * <code>ServiceRegistry.getServiceProviders</code> to select
*** 506,521 **** * corresponding to <code>category</code>. */ public <T> Iterator<T> getServiceProviders(Class<T> category, Filter filter, boolean useOrdering) { ! SubRegistry reg = (SubRegistry)categoryMap.get(category); if (reg == null) { throw new IllegalArgumentException("category unknown!"); } ! Iterator iter = getServiceProviders(category, useOrdering); ! return new FilterIterator(iter, filter); } /** * Returns the currently registered service provider object that * is of the given class type. At most one object of a given --- 508,523 ---- * corresponding to <code>category</code>. */ public <T> Iterator<T> getServiceProviders(Class<T> category, Filter filter, boolean useOrdering) { ! SubRegistry reg = categoryMap.get(category); if (reg == null) { throw new IllegalArgumentException("category unknown!"); } ! Iterator<T> iter = getServiceProviders(category, useOrdering); ! return new FilterIterator<>(iter, filter); } /** * Returns the currently registered service provider object that * is of the given class type. At most one object of a given
*** 536,550 **** */ public <T> T getServiceProviderByClass(Class<T> providerClass) { if (providerClass == null) { throw new IllegalArgumentException("providerClass == null!"); } ! Iterator iter = categoryMap.keySet().iterator(); while (iter.hasNext()) { ! Class c = (Class)iter.next(); if (c.isAssignableFrom(providerClass)) { ! SubRegistry reg = (SubRegistry)categoryMap.get(c); T provider = reg.getServiceProviderByClass(providerClass); if (provider != null) { return provider; } } --- 538,552 ---- */ public <T> T getServiceProviderByClass(Class<T> providerClass) { if (providerClass == null) { throw new IllegalArgumentException("providerClass == null!"); } ! Iterator<Class<?>> iter = categoryMap.keySet().iterator(); while (iter.hasNext()) { ! Class<?> c = iter.next(); if (c.isAssignableFrom(providerClass)) { ! SubRegistry reg = categoryMap.get(c); T provider = reg.getServiceProviderByClass(providerClass); if (provider != null) { return provider; } }
*** 587,597 **** throw new IllegalArgumentException("provider is null!"); } if (firstProvider == secondProvider) { throw new IllegalArgumentException("providers are the same!"); } ! SubRegistry reg = (SubRegistry)categoryMap.get(category); if (reg == null) { throw new IllegalArgumentException("category unknown!"); } if (reg.contains(firstProvider) && reg.contains(secondProvider)) { --- 589,599 ---- throw new IllegalArgumentException("provider is null!"); } if (firstProvider == secondProvider) { throw new IllegalArgumentException("providers are the same!"); } ! SubRegistry reg = categoryMap.get(category); if (reg == null) { throw new IllegalArgumentException("category unknown!"); } if (reg.contains(firstProvider) && reg.contains(secondProvider)) {
*** 633,643 **** throw new IllegalArgumentException("provider is null!"); } if (firstProvider == secondProvider) { throw new IllegalArgumentException("providers are the same!"); } ! SubRegistry reg = (SubRegistry)categoryMap.get(category); if (reg == null) { throw new IllegalArgumentException("category unknown!"); } if (reg.contains(firstProvider) && reg.contains(secondProvider)) { --- 635,645 ---- throw new IllegalArgumentException("provider is null!"); } if (firstProvider == secondProvider) { throw new IllegalArgumentException("providers are the same!"); } ! SubRegistry reg = categoryMap.get(category); if (reg == null) { throw new IllegalArgumentException("category unknown!"); } if (reg.contains(firstProvider) && reg.contains(secondProvider)) {
*** 654,664 **** * * @exception IllegalArgumentException if there is no category * corresponding to <code>category</code>. */ public void deregisterAll(Class<?> category) { ! SubRegistry reg = (SubRegistry)categoryMap.get(category); if (reg == null) { throw new IllegalArgumentException("category unknown!"); } reg.clear(); } --- 656,666 ---- * * @exception IllegalArgumentException if there is no category * corresponding to <code>category</code>. */ public void deregisterAll(Class<?> category) { ! SubRegistry reg = categoryMap.get(category); if (reg == null) { throw new IllegalArgumentException("category unknown!"); } reg.clear(); }
*** 666,678 **** /** * Deregisters all currently registered service providers from all * categories. */ public void deregisterAll() { ! Iterator iter = categoryMap.values().iterator(); while (iter.hasNext()) { ! SubRegistry reg = (SubRegistry)iter.next(); reg.clear(); } } /** --- 668,680 ---- /** * Deregisters all currently registered service providers from all * categories. */ public void deregisterAll() { ! Iterator<SubRegistry> iter = categoryMap.values().iterator(); while (iter.hasNext()) { ! SubRegistry reg = iter.next(); reg.clear(); } } /**
*** 697,715 **** */ class SubRegistry { ServiceRegistry registry; ! Class category; // Provider Objects organized by partial oridering ! PartiallyOrderedSet poset = new PartiallyOrderedSet(); // Class -> Provider Object of that class ! Map<Class<?>,Object> map = new HashMap(); ! public SubRegistry(ServiceRegistry registry, Class category) { this.registry = registry; this.category = category; } public boolean registerServiceProvider(Object provider) { --- 699,719 ---- */ class SubRegistry { ServiceRegistry registry; ! Class<?> category; // Provider Objects organized by partial oridering ! PartiallyOrderedSet<Object> poset = new PartiallyOrderedSet<>(); // Class -> Provider Object of that class ! // No way to express heterogeneous map, we want ! // Map<Class<T>, T>, where T is ? ! Map<Class<?>, Object> map = new HashMap<>(); ! public SubRegistry(ServiceRegistry registry, Class<?> category) { this.registry = registry; this.category = category; } public boolean registerServiceProvider(Object provider) {
*** 763,786 **** public boolean unsetOrdering(Object firstProvider, Object secondProvider) { return poset.unsetOrdering(firstProvider, secondProvider); } ! public Iterator getServiceProviders(boolean useOrdering) { if (useOrdering) { return poset.iterator(); } else { return map.values().iterator(); } } public <T> T getServiceProviderByClass(Class<T> providerClass) { return (T)map.get(providerClass); } public void clear() { ! Iterator iter = map.values().iterator(); while (iter.hasNext()) { Object provider = iter.next(); iter.remove(); if (provider instanceof RegisterableService) { --- 767,791 ---- public boolean unsetOrdering(Object firstProvider, Object secondProvider) { return poset.unsetOrdering(firstProvider, secondProvider); } ! public Iterator<Object> getServiceProviders(boolean useOrdering) { if (useOrdering) { return poset.iterator(); } else { return map.values().iterator(); } } + @SuppressWarnings("unchecked") public <T> T getServiceProviderByClass(Class<T> providerClass) { return (T)map.get(providerClass); } public void clear() { ! Iterator<Object> iter = map.values().iterator(); while (iter.hasNext()) { Object provider = iter.next(); iter.remove(); if (provider instanceof RegisterableService) {
*** 801,816 **** * A class for wrapping <code>Iterators</code> with a filter function. * This provides an iterator for a subset without duplication. */ class FilterIterator<T> implements Iterator<T> { ! private Iterator<T> iter; private ServiceRegistry.Filter filter; private T next = null; ! public FilterIterator(Iterator<T> iter, ServiceRegistry.Filter filter) { this.iter = iter; this.filter = filter; advance(); } --- 806,821 ---- * A class for wrapping <code>Iterators</code> with a filter function. * This provides an iterator for a subset without duplication. */ class FilterIterator<T> implements Iterator<T> { ! private Iterator<? extends T> iter; private ServiceRegistry.Filter filter; private T next = null; ! public FilterIterator(Iterator<? extends T> iter, ServiceRegistry.Filter filter) { this.iter = iter; this.filter = filter; advance(); }