6 public class CUPSPrinter
9 String printer_location
;
11 String printer_more_info
;
13 String
[] printer_uri_supported
; // Strings
14 String
[] uri_authentication_supported
; // Strings
15 String
[] uri_security_supported
; // Strings
17 String attributes_charset
;
18 String attributes_natural_language
;
21 String printer_state_reasons
;
23 boolean printer_is_accepting_jobs
;
26 long printer_current_time
;
30 String
[] pdl_override_supported
;
31 String
[] ipp_versions_supported
;
33 int[] operations_supported
; // Integers
35 boolean multiple_document_jobs_supported
;
36 int multiple_operation_time_out
;
37 int[] multiple_document_handling_supported
; // Integers
39 String charset_configured
;
40 String natural_language_configured
;
41 String generated_natural_language_supported
;
42 String
[] charset_supported
; // Strings
44 String document_format_default
;
45 String
[] document_format_supported
; // Strings
47 String
[] compression_supported
; // Strings
49 int job_priority_default
;
50 int job_priority_supported
;
53 int lower_copies_supported
;
54 int upper_copies_supported
;
56 boolean page_ranges_supported
;
58 int number_up_default
;
59 int[] number_up_supported
; // integers
62 int orientation_requested_default
;
63 int[] orientation_requested_supported
; // Integers
69 String job_sheets_default
; // Should this be a list too?
70 String
[] job_sheets_supported
; // Strings
74 boolean color_supported
;
77 String printer_make_and_model
;
80 String
[] media_supported
; // Strings
82 int finishings_default
;
83 int[] finishings_supported
; // Integers
89 // ---------------------------------------------
100 // ---------------------------------------------
102 // Move the attributes from an ipp request
103 // into a CUPSPrinter object.
105 public void updateAttribute( IPPAttribute a
)
111 if (a
.name
.compareTo("printer-name") == 0)
113 v
= (IPPValue
)a
.values
.get(0);
114 printer_name
= v
.text
;
116 else if (a
.name
.compareTo("printer-location") == 0)
118 v
= (IPPValue
)a
.values
.get(0);
119 printer_location
= v
.text
;
121 else if (a
.name
.compareTo("printer-info") == 0)
123 v
= (IPPValue
)a
.values
.get(0);
124 printer_info
= v
.text
;
126 else if (a
.name
.compareTo("printer-more-info") == 0)
128 v
= (IPPValue
)a
.values
.get(0);
129 printer_more_info
= v
.text
;
131 else if (a
.name
.compareTo("printer-uri-supported") == 0)
133 printer_uri_supported
= new String
[a
.values
.size()];
134 for (i
=0; i
< a
.values
.size(); i
++)
136 v
= (IPPValue
)a
.values
.get(i
);
137 printer_uri_supported
[i
] = v
.text
;
140 else if (a
.name
.compareTo("uri-authentication-supported") == 0)
142 uri_authentication_supported
= new String
[a
.values
.size()];
143 for (i
=0; i
< a
.values
.size(); i
++)
145 v
= (IPPValue
)a
.values
.get(i
);
146 uri_authentication_supported
[i
] = v
.text
;
149 else if (a
.name
.compareTo("uri-security-supported") == 0)
151 uri_security_supported
= new String
[a
.values
.size()];
152 for (i
=0; i
< a
.values
.size(); i
++)
154 v
= (IPPValue
)a
.values
.get(i
);
155 uri_security_supported
[i
] = v
.text
;
158 else if (a
.name
.compareTo("attributes-charset") == 0)
160 v
= (IPPValue
)a
.values
.get(0);
161 attributes_charset
= v
.text
;
163 else if (a
.name
.compareTo("attributes-natural-language") == 0)
165 v
= (IPPValue
)a
.values
.get(0);
166 attributes_natural_language
= v
.text
;
168 else if (a
.name
.compareTo("printer-state") == 0)
170 v
= (IPPValue
)a
.values
.get(0);
171 printer_state
= v
.integer_value
;
173 else if (a
.name
.compareTo("printer-state-reasons") == 0)
175 v
= (IPPValue
)a
.values
.get(0);
176 printer_state_reasons
= v
.text
;
178 else if (a
.name
.compareTo("printer-is-accepting-jobs") == 0)
180 v
= (IPPValue
)a
.values
.get(0);
181 printer_is_accepting_jobs
= v
.boolean_value
;
183 else if (a
.name
.compareTo("printer-up-time") == 0)
185 v
= (IPPValue
)a
.values
.get(0);
186 printer_up_time
= v
.integer_value
;
188 else if (a
.name
.compareTo("printer-current-time") == 0)
190 v
= (IPPValue
)a
.values
.get(0);
191 printer_current_time
= v
.unix_time
; // *** FIX ***
193 else if (a
.name
.compareTo("queue-job-count") == 0)
195 v
= (IPPValue
)a
.values
.get(0);
196 queued_job_count
= v
.integer_value
;
198 else if (a
.name
.compareTo("pdl-override-supported") == 0)
200 pdl_override_supported
= new String
[a
.values
.size()];
201 for (i
=0; i
< a
.values
.size(); i
++)
203 v
= (IPPValue
)a
.values
.get(i
);
204 pdl_override_supported
[i
] = v
.text
;
207 else if (a
.name
.compareTo("ipp-versions-supported") == 0)
209 ipp_versions_supported
= new String
[a
.values
.size()];
210 for (i
=0; i
< a
.values
.size(); i
++)
212 v
= (IPPValue
)a
.values
.get(i
);
213 ipp_versions_supported
[i
] = v
.text
;
216 else if (a
.name
.compareTo("operations-supported") == 0)
218 operations_supported
= new int[a
.values
.size()];
219 for (i
=0; i
< a
.values
.size(); i
++)
221 v
= (IPPValue
)a
.values
.get(i
);
222 operations_supported
[i
] = v
.integer_value
;
225 else if (a
.name
.compareTo("multiple-document-jobs-supported") == 0)
227 v
= (IPPValue
)a
.values
.get(0);
228 multiple_document_jobs_supported
= v
.boolean_value
;
230 else if (a
.name
.compareTo("multiple-operation-time-out") == 0)
232 v
= (IPPValue
)a
.values
.get(0);
233 multiple_operation_time_out
= v
.integer_value
;
235 else if (a
.name
.compareTo("multiple-document-handling-supported") == 0)
237 multiple_document_handling_supported
= new int[a
.values
.size()];
238 for (i
=0; i
< a
.values
.size(); i
++)
240 v
= (IPPValue
)a
.values
.get(i
);
241 multiple_document_handling_supported
[i
] = v
.integer_value
;
244 else if (a
.name
.compareTo("charset-configured") == 0)
246 v
= (IPPValue
)a
.values
.get(0);
247 charset_configured
= v
.text
;
249 else if (a
.name
.compareTo("natural-language-configured") == 0)
251 v
= (IPPValue
)a
.values
.get(0);
252 natural_language_configured
= v
.text
;
254 else if (a
.name
.compareTo("generated-natural-language-supported") == 0)
256 // *** Should this be a list too?
257 v
= (IPPValue
)a
.values
.get(0);
258 generated_natural_language_supported
= v
.text
;
260 else if (a
.name
.compareTo("charset-supported") == 0)
262 charset_supported
= new String
[a
.values
.size()];
263 for (i
=0; i
< a
.values
.size(); i
++)
265 v
= (IPPValue
)a
.values
.get(i
);
266 charset_supported
[i
] = v
.text
;
269 else if (a
.name
.compareTo("document-format-default") == 0)
271 v
= (IPPValue
)a
.values
.get(0);
272 document_format_default
= v
.text
;
274 else if (a
.name
.compareTo("document-format-supported") == 0)
276 document_format_supported
= new String
[a
.values
.size()];
277 for (i
=0; i
< a
.values
.size(); i
++)
279 v
= (IPPValue
)a
.values
.get(i
);
280 document_format_supported
[i
] = v
.text
;
283 else if (a
.name
.compareTo("compression-supported") == 0)
285 compression_supported
= new String
[a
.values
.size()];
286 for (i
=0; i
< a
.values
.size(); i
++)
288 v
= (IPPValue
)a
.values
.get(i
);
289 compression_supported
[i
] = v
.text
;
292 else if (a
.name
.compareTo("job-priority-default") == 0)
294 v
= (IPPValue
)a
.values
.get(0);
295 job_priority_default
= v
.integer_value
;
297 else if (a
.name
.compareTo("job-priority-supported") == 0)
299 // *** Should be a list? ***
300 v
= (IPPValue
)a
.values
.get(0);
301 job_priority_supported
= v
.integer_value
;
303 else if (a
.name
.compareTo("copies-default") == 0)
305 v
= (IPPValue
)a
.values
.get(0);
306 copies_default
= v
.integer_value
;
308 else if (a
.name
.compareTo("copies-supported") == 0)
310 v
= (IPPValue
)a
.values
.get(0);
311 lower_copies_supported
= v
.lower
;
312 upper_copies_supported
= v
.upper
;
314 else if (a
.name
.compareTo("page-ranges-supported") == 0)
316 v
= (IPPValue
)a
.values
.get(0);
317 page_ranges_supported
= v
.boolean_value
;
319 else if (a
.name
.compareTo("number-up-default") == 0)
321 v
= (IPPValue
)a
.values
.get(0);
322 number_up_default
= v
.integer_value
;
324 else if (a
.name
.compareTo("number-up-supported") == 0)
326 number_up_supported
= new int[a
.values
.size()];
327 for (i
=0; i
< a
.values
.size(); i
++)
329 v
= (IPPValue
)a
.values
.get(i
);
330 number_up_supported
[i
] = v
.integer_value
;
333 else if (a
.name
.compareTo("orientation-requested-default") == 0)
335 v
= (IPPValue
)a
.values
.get(0);
336 orientation_requested_default
= v
.integer_value
;
338 else if (a
.name
.compareTo("orientation-requested-supported") == 0)
340 orientation_requested_supported
= new int[a
.values
.size()];
341 for (i
=0; i
< a
.values
.size(); i
++)
343 v
= (IPPValue
)a
.values
.get(i
);
344 orientation_requested_supported
[i
] = v
.integer_value
;
347 else if (a
.name
.compareTo("job-quota-period") == 0)
349 v
= (IPPValue
)a
.values
.get(0);
350 job_quota_period
= v
.integer_value
;
352 else if (a
.name
.compareTo("job-k-limit") == 0)
354 v
= (IPPValue
)a
.values
.get(0);
355 job_k_limit
= v
.integer_value
;
357 else if (a
.name
.compareTo("job-page-limit") == 0)
359 v
= (IPPValue
)a
.values
.get(0);
360 job_page_limit
= v
.integer_value
;
362 else if (a
.name
.compareTo("job-sheets-default") == 0)
364 v
= (IPPValue
)a
.values
.get(0);
365 job_sheets_default
= v
.text
;
367 else if (a
.name
.compareTo("job-sheets-supported") == 0)
369 job_sheets_supported
= new String
[a
.values
.size()];
370 for (i
=0; i
< a
.values
.size(); i
++)
372 v
= (IPPValue
)a
.values
.get(i
);
373 job_sheets_supported
[i
] = v
.text
;
376 else if (a
.name
.compareTo("device-uri") == 0)
378 v
= (IPPValue
)a
.values
.get(0);
381 else if (a
.name
.compareTo("color-supported") == 0)
383 v
= (IPPValue
)a
.values
.get(0);
384 color_supported
= v
.boolean_value
;
386 else if (a
.name
.compareTo("pages-per-minute") == 0)
388 v
= (IPPValue
)a
.values
.get(0);
389 pages_per_minute
= v
.integer_value
;
391 else if (a
.name
.compareTo("printer-make-and-model") == 0)
393 v
= (IPPValue
)a
.values
.get(0);
394 printer_make_and_model
= v
.text
;
396 else if (a
.name
.compareTo("media-default") == 0)
398 v
= (IPPValue
)a
.values
.get(0);
399 media_default
= v
.text
;
401 else if (a
.name
.compareTo("media-supported") == 0)
403 media_supported
= new String
[a
.values
.size()];
404 for (i
=0; i
< a
.values
.size(); i
++)
406 v
= (IPPValue
)a
.values
.get(i
);
407 media_supported
[i
] = v
.text
;
410 else if (a
.name
.compareTo("finishings-default") == 0)
412 v
= (IPPValue
)a
.values
.get(0);
413 finishings_default
= v
.integer_value
;
415 else if (a
.name
.compareTo("finishings-supported") == 0)
417 finishings_supported
= new int[a
.values
.size()];
418 for (i
=0; i
< a
.values
.size(); i
++)
420 v
= (IPPValue
)a
.values
.get(i
);
421 finishings_supported
[i
] = v
.integer_value
;
424 else if (a
.name
.compareTo("printer-type") == 0)
426 v
= (IPPValue
)a
.values
.get(0);
427 printer_type
= v
.integer_value
;
430 } // End of updateAttribute()
436 } // End of CUPSPrinter class