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);