Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/src/java.desktop/share/classes/javax/print/DocPrintJob.java
41153 views
1
/*
2
* Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation. Oracle designates this
8
* particular file as subject to the "Classpath" exception as provided
9
* by Oracle in the LICENSE file that accompanied this code.
10
*
11
* This code is distributed in the hope that it will be useful, but WITHOUT
12
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14
* version 2 for more details (a copy is included in the LICENSE file that
15
* accompanied this code).
16
*
17
* You should have received a copy of the GNU General Public License version
18
* 2 along with this work; if not, write to the Free Software Foundation,
19
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20
*
21
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22
* or visit www.oracle.com if you need additional information or have any
23
* questions.
24
*/
25
26
package javax.print;
27
28
import javax.print.attribute.PrintJobAttributeSet;
29
import javax.print.attribute.PrintRequestAttributeSet;
30
import javax.print.event.PrintJobAttributeListener;
31
import javax.print.event.PrintJobListener;
32
33
/**
34
* This interface represents a print job that can print a specified document
35
* with a set of job attributes. An object implementing this interface is
36
* obtained from a print service.
37
*/
38
public interface DocPrintJob {
39
40
/**
41
* Determines the {@link PrintService} object to which this print job object
42
* is bound.
43
*
44
* @return {@code PrintService} object
45
*/
46
public PrintService getPrintService();
47
48
/**
49
* Obtains this Print Job's set of printing attributes. The returned
50
* attribute set object is unmodifiable. The returned attribute set object
51
* is a "snapshot" of this Print Job's attribute set at the time of the
52
* {@code getAttributes()} method call; that is, the returned attribute
53
* set's object's contents will not be updated if this Print Job's attribute
54
* set's contents change in the future. To detect changes in attribute
55
* values, call {@code getAttributes()} again and compare the new attribute
56
* set to the previous attribute set; alternatively, register a listener for
57
* print job events. The returned value may be an empty set but should not
58
* be {@code null}.
59
*
60
* @return the print job attributes
61
*/
62
public PrintJobAttributeSet getAttributes();
63
64
/**
65
* Registers a listener for event occurring during this print job. If
66
* listener is {@code null}, no exception is thrown and no action is
67
* performed. If listener is already registered, it will be registered
68
* again.
69
*
70
* @param listener the object implementing the listener interface
71
* @see #removePrintJobListener
72
*/
73
public void addPrintJobListener(PrintJobListener listener);
74
75
/**
76
* Removes a listener from this print job. This method performs no function,
77
* nor does it throw an exception, if the listener specified by the argument
78
* was not previously added to this print job. If listener is {@code null},
79
* no exception is thrown and no action is performed. If a listener was
80
* registered more than once only one of the registrations will be removed.
81
*
82
* @param listener the object implementing the listener interface
83
* @see #addPrintJobListener
84
*/
85
public void removePrintJobListener(PrintJobListener listener);
86
87
/**
88
* Registers a listener for changes in the specified attributes. If listener
89
* is {@code null}, no exception is thrown and no action is performed. To
90
* determine the attribute updates that may be reported by this job, a
91
* client can call {@code getAttributes()} and identify the subset that are
92
* interesting and likely to be reported to the listener. Clients expecting
93
* to be updated about changes in a specific job attribute should verify it
94
* is in that set, but updates about an attribute will be made only if it
95
* changes and this is detected by the job. Also updates may be subject to
96
* batching by the job. To minimize overhead in print job processing it is
97
* recommended to listen on only that subset of attributes which are likely
98
* to change. If the specified set is empty no attribute updates will be
99
* reported to the listener. If the attribute set is {@code null}, then this
100
* means to listen on all dynamic attributes that the job supports. This may
101
* result in no update notifications if a job can not report any attribute
102
* updates.
103
* <p>
104
* If listener is already registered, it will be registered again.
105
*
106
* @param listener the object implementing the listener interface
107
* @param attributes the attributes to listen on, or {@code null} to mean
108
* all attributes that can change, as determined by the job
109
* @see #removePrintJobAttributeListener
110
*/
111
public void addPrintJobAttributeListener(
112
PrintJobAttributeListener listener,
113
PrintJobAttributeSet attributes);
114
115
/**
116
* Removes an attribute listener from this print job. This method performs
117
* no function, nor does it throw an exception, if the listener specified by
118
* the argument was not previously added to this print job. If the listener
119
* is {@code null}, no exception is thrown and no action is performed. If a
120
* listener is registered more than once, even for a different set of
121
* attributes, no guarantee is made which listener is removed.
122
*
123
* @param listener the object implementing the listener interface
124
* @see #addPrintJobAttributeListener
125
*/
126
public void removePrintJobAttributeListener(
127
PrintJobAttributeListener listener);
128
129
/**
130
* Prints a document with the specified job attributes. This method should
131
* only be called once for a given print job. Calling it again will not
132
* result in a new job being spooled to the printer. The service
133
* implementation will define policy for service interruption and recovery.
134
* When the print method returns, printing may not yet have completed as
135
* printing may happen asynchronously, perhaps in a different thread.
136
* Application clients which want to monitor the success or failure should
137
* register a {@code PrintJobListener}.
138
* <p>
139
* Print service implementors should close any print data streams (ie
140
* {@code Reader} or {@code InputStream} implementations) that they obtain
141
* from the client doc. Robust clients may still wish to verify this. An
142
* exception is always generated if a {@code DocFlavor} cannot be printed.
143
*
144
* @param doc the document to be printed. It must be a flavor supported by
145
* this PrintJob.
146
* @param attributes the job attributes to be applied to this print job. If
147
* this parameter is {@code null} then the default attributes are
148
* used.
149
* @throws PrintException the exception additionally may implement an
150
* interface that more precisely describes the cause of the
151
* exception
152
* <ul>
153
* <li>{@code FlavorException}. If the document has a flavor not
154
* supported by this print job.
155
* <li>{@code AttributeException}. If one or more of the
156
* attributes are not valid for this print job.
157
* </ul>
158
*/
159
public void print(Doc doc, PrintRequestAttributeSet attributes)
160
throws PrintException;
161
162
}
163
164