< prev index next >

langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/file/BaseFileManager.java

Print this page




 215             Method addReadsMethod = moduleClass.getMethod("addReads", moduleClass);
 216             addReadsMethod.invoke(thisModule, targetModule);
 217         } catch (NoSuchMethodException e) {
 218             // ignore
 219         } catch (Exception e) {
 220             throw new Abort(e);
 221         }
 222         return targetLoader;
 223     }
 224 
 225     public boolean isDefaultBootClassPath() {
 226         return locations.isDefaultBootClassPath();
 227     }
 228 
 229     // <editor-fold defaultstate="collapsed" desc="Option handling">
 230     @Override @DefinedBy(Api.COMPILER)
 231     public boolean handleOption(String current, Iterator<String> remaining) {
 232         OptionHelper helper = new GrumpyHelper(log) {
 233             @Override
 234             public String get(Option option) {
 235                 return options.get(option.getText());
 236             }
 237 
 238             @Override
 239             public void put(String name, String value) {
 240                 options.put(name, value);
 241             }
 242 
 243             @Override
 244             public void remove(String name) {
 245                 options.remove(name);
 246             }
 247 
 248             @Override
 249             public boolean handleFileManagerOption(Option option, String value) {
 250                 return handleOption(option, value);
 251             }
 252         };
 253 
 254         for (Option o: javacFileManagerOptions) {
 255             if (o.matches(current))  {
 256                 if (o.hasArg()) {
 257                     if (remaining.hasNext()) {
 258                         if (!o.process(helper, current, remaining.next()))
 259                             return true;
 260                     }
 261                 } else {
 262                     if (!o.process(helper, current))
 263                         return true;
 264                 }
 265                 // operand missing, or process returned true

 266                 throw new IllegalArgumentException(current);
 267             }
 268         }
 269 
 270         return false;
 271     }
 272     // where
 273         private static final Set<Option> javacFileManagerOptions =
 274             Option.getJavacFileManagerOptions();
 275 
 276     @Override @DefinedBy(Api.COMPILER)
 277     public int isSupportedOption(String option) {
 278         for (Option o : javacFileManagerOptions) {
 279             if (o.matches(option))
 280                 return o.hasArg() ? 1 : 0;
 281         }
 282         return -1;
 283     }
 284 
 285     protected String multiReleaseValue;
 286 
 287     /**
 288      * Common back end for OptionHelper handleFileManagerOption.
 289      * @param option the option whose value to be set
 290      * @param value the value for the option
 291      * @return true if successful, and false otherwise
 292      */
 293     public boolean handleOption(Option option, String value) {
 294         switch (option) {
 295             case ENCODING:
 296                 encodingName = value;
 297                 return true;
 298 
 299             case MULTIRELEASE:
 300                 multiReleaseValue = value;
 301                 return true;
 302 
 303             default:
 304                 return locations.handleOption(option, value);
 305         }
 306     }
 307 
 308     /**
 309      * Call handleOption for collection of options and corresponding values.
 310      * @param map a collection of options and corresponding values
 311      * @return true if all the calls are successful
 312      */
 313     public boolean handleOptions(Map<Option, String> map) {
 314         boolean ok = true;
 315         for (Map.Entry<Option, String> e: map.entrySet()) {
 316             try {
 317                 ok = ok & handleOption(e.getKey(), e.getValue());
 318             } catch (IllegalArgumentException ex) {
 319                 log.error(Errors.IllegalArgumentForOption(e.getKey().getText(), ex.getMessage()));
 320                 ok = false;
 321             }
 322         }
 323         return ok;
 324     }
 325 
 326     // </editor-fold>
 327 
 328     // <editor-fold defaultstate="collapsed" desc="Encoding">
 329     private String encodingName;
 330     private String defaultEncodingName;
 331     private String getDefaultEncodingName() {
 332         if (defaultEncodingName == null) {
 333             defaultEncodingName = Charset.defaultCharset().name();
 334         }
 335         return defaultEncodingName;
 336     }
 337 
 338     public String getEncodingName() {
 339         return (encodingName != null) ? encodingName : getDefaultEncodingName();




 215             Method addReadsMethod = moduleClass.getMethod("addReads", moduleClass);
 216             addReadsMethod.invoke(thisModule, targetModule);
 217         } catch (NoSuchMethodException e) {
 218             // ignore
 219         } catch (Exception e) {
 220             throw new Abort(e);
 221         }
 222         return targetLoader;
 223     }
 224 
 225     public boolean isDefaultBootClassPath() {
 226         return locations.isDefaultBootClassPath();
 227     }
 228 
 229     // <editor-fold defaultstate="collapsed" desc="Option handling">
 230     @Override @DefinedBy(Api.COMPILER)
 231     public boolean handleOption(String current, Iterator<String> remaining) {
 232         OptionHelper helper = new GrumpyHelper(log) {
 233             @Override
 234             public String get(Option option) {
 235                 return options.get(option);
 236             }
 237 
 238             @Override
 239             public void put(String name, String value) {
 240                 options.put(name, value);
 241             }
 242 
 243             @Override
 244             public void remove(String name) {
 245                 options.remove(name);
 246             }
 247 
 248             @Override
 249             public boolean handleFileManagerOption(Option option, String value) {
 250                 return handleOption(option, value);
 251             }
 252         };
 253 
 254         Option o = Option.lookup(current, javacFileManagerOptions);
 255         if (o == null) {
 256             return false;







 257         }
 258 
 259         if (!o.handleOption(helper, current, remaining))
 260             throw new IllegalArgumentException(current);


 261 
 262         return true;
 263     }
 264     // where
 265         private static final Set<Option> javacFileManagerOptions =
 266             Option.getJavacFileManagerOptions();
 267 
 268     @Override @DefinedBy(Api.COMPILER)
 269     public int isSupportedOption(String option) {
 270         Option o = Option.lookup(option, javacFileManagerOptions);
 271         return (o == null) ? -1 : o.hasArg() ? 1 : 0;



 272     }
 273 
 274     protected String multiReleaseValue;
 275 
 276     /**
 277      * Common back end for OptionHelper handleFileManagerOption.
 278      * @param option the option whose value to be set
 279      * @param value the value for the option
 280      * @return true if successful, and false otherwise
 281      */
 282     public boolean handleOption(Option option, String value) {
 283         switch (option) {
 284             case ENCODING:
 285                 encodingName = value;
 286                 return true;
 287 
 288             case MULTIRELEASE:
 289                 multiReleaseValue = value;
 290                 return true;
 291 
 292             default:
 293                 return locations.handleOption(option, value);
 294         }
 295     }
 296 
 297     /**
 298      * Call handleOption for collection of options and corresponding values.
 299      * @param map a collection of options and corresponding values
 300      * @return true if all the calls are successful
 301      */
 302     public boolean handleOptions(Map<Option, String> map) {
 303         boolean ok = true;
 304         for (Map.Entry<Option, String> e: map.entrySet()) {
 305             try {
 306                 ok = ok & handleOption(e.getKey(), e.getValue());
 307             } catch (IllegalArgumentException ex) {
 308                 log.error(Errors.IllegalArgumentForOption(e.getKey().getPrimaryName(), ex.getMessage()));
 309                 ok = false;
 310             }
 311         }
 312         return ok;
 313     }
 314 
 315     // </editor-fold>
 316 
 317     // <editor-fold defaultstate="collapsed" desc="Encoding">
 318     private String encodingName;
 319     private String defaultEncodingName;
 320     private String getDefaultEncodingName() {
 321         if (defaultEncodingName == null) {
 322             defaultEncodingName = Charset.defaultCharset().name();
 323         }
 324         return defaultEncodingName;
 325     }
 326 
 327     public String getEncodingName() {
 328         return (encodingName != null) ? encodingName : getDefaultEncodingName();


< prev index next >