src/share/classes/javax/print/StreamPrintServiceFactory.java

Print this page

        

*** 57,67 **** */ public abstract class StreamPrintServiceFactory { static class Services { ! private ArrayList listOfFactories = null; } private static Services getServices() { Services services = (Services)AppContext.getAppContext().get(Services.class); --- 57,67 ---- */ public abstract class StreamPrintServiceFactory { static class Services { ! private ArrayList<StreamPrintServiceFactory> listOfFactories = null; } private static Services getServices() { Services services = (Services)AppContext.getAppContext().get(Services.class);
*** 70,85 **** AppContext.getAppContext().put(Services.class, services); } return services; } ! private static ArrayList getListOfFactories() { return getServices().listOfFactories; } ! private static ArrayList initListOfFactories() { ! ArrayList listOfFactories = new ArrayList(); getServices().listOfFactories = listOfFactories; return listOfFactories; } /** --- 70,85 ---- AppContext.getAppContext().put(Services.class, services); } return services; } ! private static ArrayList<StreamPrintServiceFactory> getListOfFactories() { return getServices().listOfFactories; } ! private static ArrayList<StreamPrintServiceFactory> initListOfFactories() { ! ArrayList<StreamPrintServiceFactory> listOfFactories = new ArrayList<>(); getServices().listOfFactories = listOfFactories; return listOfFactories; } /**
*** 106,118 **** */ public static StreamPrintServiceFactory[] lookupStreamPrintServiceFactories(DocFlavor flavor, String outputMimeType) { ! ArrayList list = getFactories(flavor, outputMimeType); ! return (StreamPrintServiceFactory[]) ! (list.toArray(new StreamPrintServiceFactory[list.size()])); } /** Queries the factory for the document format that is emitted * by printers obtained from this factory. * --- 106,117 ---- */ public static StreamPrintServiceFactory[] lookupStreamPrintServiceFactories(DocFlavor flavor, String outputMimeType) { ! ArrayList<StreamPrintServiceFactory> list = getFactories(flavor, outputMimeType); ! return list.toArray(new StreamPrintServiceFactory[list.size()]); } /** Queries the factory for the document format that is emitted * by printers obtained from this factory. *
*** 160,187 **** * DocFlavor supported by this Factory. */ public abstract StreamPrintService getPrintService(OutputStream out); ! private static ArrayList getAllFactories() { synchronized (StreamPrintServiceFactory.class) { ! ArrayList listOfFactories = getListOfFactories(); if (listOfFactories != null) { return listOfFactories; } else { listOfFactories = initListOfFactories(); } try { java.security.AccessController.doPrivileged( ! new java.security.PrivilegedExceptionAction() { public Object run() { Iterator<StreamPrintServiceFactory> iterator = ServiceLoader.load (StreamPrintServiceFactory.class).iterator(); ! ArrayList lof = getListOfFactories(); while (iterator.hasNext()) { try { lof.add(iterator.next()); } catch (ServiceConfigurationError err) { /* In the applet case, we continue */ --- 159,186 ---- * DocFlavor supported by this Factory. */ public abstract StreamPrintService getPrintService(OutputStream out); ! private static ArrayList<StreamPrintServiceFactory> getAllFactories() { synchronized (StreamPrintServiceFactory.class) { ! ArrayList<StreamPrintServiceFactory> listOfFactories = getListOfFactories(); if (listOfFactories != null) { return listOfFactories; } else { listOfFactories = initListOfFactories(); } try { java.security.AccessController.doPrivileged( ! new java.security.PrivilegedExceptionAction<Object>() { public Object run() { Iterator<StreamPrintServiceFactory> iterator = ServiceLoader.load (StreamPrintServiceFactory.class).iterator(); ! ArrayList<StreamPrintServiceFactory> lof = getListOfFactories(); while (iterator.hasNext()) { try { lof.add(iterator.next()); } catch (ServiceConfigurationError err) { /* In the applet case, we continue */
*** 208,228 **** } } return false; } ! private static ArrayList getFactories(DocFlavor flavor, String outType) { if (flavor == null && outType == null) { return getAllFactories(); } ! ArrayList list = new ArrayList(); ! Iterator iterator = getAllFactories().iterator(); while (iterator.hasNext()) { ! StreamPrintServiceFactory factory = ! (StreamPrintServiceFactory)iterator.next(); if ((outType == null || outType.equalsIgnoreCase(factory.getOutputFormat())) && (flavor == null || isMember(flavor, factory.getSupportedDocFlavors()))) { list.add(factory); --- 207,226 ---- } } return false; } ! private static ArrayList<StreamPrintServiceFactory> getFactories(DocFlavor flavor, String outType) { if (flavor == null && outType == null) { return getAllFactories(); } ! ArrayList<StreamPrintServiceFactory> list = new ArrayList<>(); ! Iterator<StreamPrintServiceFactory> iterator = getAllFactories().iterator(); while (iterator.hasNext()) { ! StreamPrintServiceFactory factory = iterator.next(); if ((outType == null || outType.equalsIgnoreCase(factory.getOutputFormat())) && (flavor == null || isMember(flavor, factory.getSupportedDocFlavors()))) { list.add(factory);