src/share/classes/javax/print/attribute/standard/PrinterStateReasons.java

Print this page




 225      * @param  severity  Severity level.
 226      *
 227      * @return  Set view of the individual {@link PrinterStateReason
 228      *          PrinterStateReason} attributes at the given {@link Severity
 229      *          Severity} level.
 230      *
 231      * @exception  NullPointerException
 232      *     (unchecked exception) Thrown if <CODE>severity</CODE> is null.
 233      */
 234     public Set<PrinterStateReason> printerStateReasonSet(Severity severity) {
 235         if (severity == null) {
 236             throw new NullPointerException("severity is null");
 237         }
 238         return new PrinterStateReasonSet (severity, entrySet());
 239     }
 240 
 241     private class PrinterStateReasonSet
 242         extends AbstractSet<PrinterStateReason>
 243     {
 244         private Severity mySeverity;
 245         private Set myEntrySet;

 246 
 247         public PrinterStateReasonSet(Severity severity, Set entrySet) {

 248             mySeverity = severity;
 249             myEntrySet = entrySet;
 250         }
 251 
 252         public int size() {
 253             int result = 0;
 254             Iterator iter = iterator();
 255             while (iter.hasNext()) {
 256                 iter.next();
 257                 ++ result;
 258             }
 259             return result;
 260         }
 261 
 262         public Iterator iterator() {
 263             return new PrinterStateReasonSetIterator(mySeverity,
 264                                                      myEntrySet.iterator());
 265         }
 266     }
 267 
 268     private class PrinterStateReasonSetIterator implements Iterator {
 269         private Severity mySeverity;
 270         private Iterator myIterator;
 271         private Map.Entry myEntry;
 272 
 273         public PrinterStateReasonSetIterator(Severity severity,
 274                                              Iterator iterator) {
 275             mySeverity = severity;
 276             myIterator = iterator;
 277             goToNext();
 278         }
 279 
 280         private void goToNext() {
 281             myEntry = null;
 282             while (myEntry == null && myIterator.hasNext()) {
 283                 myEntry = (Map.Entry) myIterator.next();
 284                 if ((Severity) myEntry.getValue() != mySeverity) {
 285                     myEntry = null;
 286                 }
 287             }
 288         }
 289 
 290         public boolean hasNext() {
 291             return myEntry != null;
 292         }
 293 
 294         public Object next() {
 295             if (myEntry == null) {
 296                 throw new NoSuchElementException();
 297             }
 298             Object result = myEntry.getKey();
 299             goToNext();
 300             return result;
 301         }
 302 
 303         public void remove() {
 304             throw new UnsupportedOperationException();
 305         }
 306     }
 307 
 308 }


 225      * @param  severity  Severity level.
 226      *
 227      * @return  Set view of the individual {@link PrinterStateReason
 228      *          PrinterStateReason} attributes at the given {@link Severity
 229      *          Severity} level.
 230      *
 231      * @exception  NullPointerException
 232      *     (unchecked exception) Thrown if <CODE>severity</CODE> is null.
 233      */
 234     public Set<PrinterStateReason> printerStateReasonSet(Severity severity) {
 235         if (severity == null) {
 236             throw new NullPointerException("severity is null");
 237         }
 238         return new PrinterStateReasonSet (severity, entrySet());
 239     }
 240 
 241     private class PrinterStateReasonSet
 242         extends AbstractSet<PrinterStateReason>
 243     {
 244         private Severity mySeverity;
 245         // 
 246         private Set<Map.Entry<PrinterStateReason, Severity>> myEntrySet;
 247 
 248         public PrinterStateReasonSet(Severity severity,
 249                                      Set<Map.Entry<PrinterStateReason, Severity>> entrySet) {
 250             mySeverity = severity;
 251             myEntrySet = entrySet;
 252         }
 253 
 254         public int size() {
 255             int result = 0;
 256             Iterator<?> iter = iterator();
 257             while (iter.hasNext()) {
 258                 iter.next();
 259                 ++ result;
 260             }
 261             return result;
 262         }
 263 
 264         public Iterator<PrinterStateReason> iterator() {
 265             return new PrinterStateReasonSetIterator(mySeverity,
 266                                                      myEntrySet.iterator());
 267         }
 268     }
 269 
 270     private class PrinterStateReasonSetIterator implements Iterator<PrinterStateReason> {
 271         private Severity mySeverity;
 272         private Iterator<Map.Entry<PrinterStateReason, Severity>> myIterator;
 273         private Map.Entry<PrinterStateReason, Severity> myEntry;
 274 
 275         public PrinterStateReasonSetIterator(Severity severity,
 276                                              Iterator<Map.Entry<PrinterStateReason, Severity>> iterator) {
 277             mySeverity = severity;
 278             myIterator = iterator;
 279             goToNext();
 280         }
 281 
 282         private void goToNext() {
 283             myEntry = null;
 284             while (myEntry == null && myIterator.hasNext()) {
 285                 myEntry = myIterator.next();
 286                 if (myEntry.getValue() != mySeverity) {
 287                     myEntry = null;
 288                 }
 289             }
 290         }
 291 
 292         public boolean hasNext() {
 293             return myEntry != null;
 294         }
 295 
 296         public PrinterStateReason next() {
 297             if (myEntry == null) {
 298                 throw new NoSuchElementException();
 299             }
 300             PrinterStateReason result = myEntry.getKey();
 301             goToNext();
 302             return result;
 303         }
 304 
 305         public void remove() {
 306             throw new UnsupportedOperationException();
 307         }
 308     }
 309 
 310 }