< prev index next >

src/java.logging/share/classes/java/util/logging/Level.java

Print this page




 372     //
 373     static Level findLevel(String name) {
 374         if (name == null) {
 375             throw new NullPointerException();
 376         }
 377 
 378         Optional<Level> level;
 379 
 380         // Look for a known Level with the given non-localized name.
 381         level = KnownLevel.findByName(name, KnownLevel::mirrored);
 382         if (level.isPresent()) {
 383             return level.get();
 384         }
 385 
 386         // Now, check if the given name is an integer.  If so,
 387         // first look for a Level with the given value and then
 388         // if necessary create one.
 389         try {
 390             int x = Integer.parseInt(name);
 391             level = KnownLevel.findByValue(x, KnownLevel::mirrored);
 392             if (!level.isPresent()) {


 393                 // add new Level
 394                 Level levelObject = new Level(name, x);
 395                 // There's no need to use a reachability fence here because
 396                 // KnownLevel keeps a strong reference on the level when
 397                 // level.getClass() == Level.class.
 398                 return KnownLevel.findByValue(x, KnownLevel::mirrored).get();
 399             }
 400         } catch (NumberFormatException ex) {
 401             // Not an integer.
 402             // Drop through.
 403         }
 404 
 405         level = KnownLevel.findByLocalizedLevelName(name,
 406                 KnownLevel::mirrored);
 407         if (level.isPresent()) {
 408             return level.get();
 409         }
 410 
 411         return null;
 412     }
 413 
 414     /**
 415      * Returns a string representation of this Level.
 416      *
 417      * @return the non-localized name of the Level, for example "INFO".
 418      */
 419     @Override




 372     //
 373     static Level findLevel(String name) {
 374         if (name == null) {
 375             throw new NullPointerException();
 376         }
 377 
 378         Optional<Level> level;
 379 
 380         // Look for a known Level with the given non-localized name.
 381         level = KnownLevel.findByName(name, KnownLevel::mirrored);
 382         if (level.isPresent()) {
 383             return level.get();
 384         }
 385 
 386         // Now, check if the given name is an integer.  If so,
 387         // first look for a Level with the given value and then
 388         // if necessary create one.
 389         try {
 390             int x = Integer.parseInt(name);
 391             level = KnownLevel.findByValue(x, KnownLevel::mirrored);
 392             if (level.isPresent()) {
 393                 return level.get();
 394             }
 395             // add new Level
 396             Level levelObject = new Level(name, x);
 397             // There's no need to use a reachability fence here because
 398             // KnownLevel keeps a strong reference on the level when
 399             // level.getClass() == Level.class.
 400             return KnownLevel.findByValue(x, KnownLevel::mirrored).get();

 401         } catch (NumberFormatException ex) {
 402             // Not an integer.
 403             // Drop through.
 404         }
 405 
 406         level = KnownLevel.findByLocalizedLevelName(name,
 407                 KnownLevel::mirrored);
 408         if (level.isPresent()) {
 409             return level.get();
 410         }
 411 
 412         return null;
 413     }
 414 
 415     /**
 416      * Returns a string representation of this Level.
 417      *
 418      * @return the non-localized name of the Level, for example "INFO".
 419      */
 420     @Override


< prev index next >