264 * @param res 265 * A {@link Resolution} previously computed by the 266 * {@link Library#install install()} method 267 * 268 * @param verifySignature 269 * Perform signature verification, if true 270 * 271 * @throws ConfigurationException 272 * If a valid configuration cannot be computed 273 * 274 * @throws IOException 275 * If an I/O error occurs while accessing the module library 276 * 277 * @throws SignatureException 278 * If an error occurs while validating the signature 279 */ 280 public abstract void install(Resolution res, boolean verifySignature) 281 throws ConfigurationException, IOException, SignatureException; 282 283 /** 284 * Find a resource within the given module in this library. 285 * 286 * @param mid 287 * The module's identifier 288 * 289 * @param rn 290 * The name of the requested resource, in the usual 291 * slash-separated form 292 * 293 * @return A {@code File} object naming the location of the resource, 294 * or {@code null} if the named module does not define that 295 * resource 296 */ 297 // ## Returning file or jar URIs here is EVIL! 298 // ## Define a jmod: hierarchical URI scheme? 299 public abstract URI findLocalResource(ModuleId mid, String rn) 300 throws IOException; 301 302 /** 303 * Find a native library within the given module in this library. | 264 * @param res 265 * A {@link Resolution} previously computed by the 266 * {@link Library#install install()} method 267 * 268 * @param verifySignature 269 * Perform signature verification, if true 270 * 271 * @throws ConfigurationException 272 * If a valid configuration cannot be computed 273 * 274 * @throws IOException 275 * If an I/O error occurs while accessing the module library 276 * 277 * @throws SignatureException 278 * If an error occurs while validating the signature 279 */ 280 public abstract void install(Resolution res, boolean verifySignature) 281 throws ConfigurationException, IOException, SignatureException; 282 283 /** 284 * Remove one or more modules from this library. 285 * 286 * @param mids 287 * The module identifiers 288 * 289 * @throws ConfigurationException 290 * If the configuration of any root modules in the library 291 * require any of the given modules 292 * 293 * @throws IOException 294 * If an I/O error occurs while accessing the module library, or 295 * removing any of the module's files. Any such exceptions are 296 * caught internally. If only one is caught, then it is re-thrown. 297 * If more than one exception is caught, then the second and 298 * following exceptions are added as suppressed exceptions of the 299 * first one caught, which is then re-thrown. 300 */ 301 public abstract void remove(List<ModuleId> mids, boolean dry) 302 throws ConfigurationException, IOException; 303 304 /** 305 * Forcibly remove one or more modules from this library. 306 * 307 * <p> No regard is given to configuration of any root modules in the 308 * library that may require any of the given modules. </p> 309 * 310 * @param mids 311 * The module identifiers 312 * 313 * @throws IOException 314 * If an I/O error occurs while accessing the module library, or 315 * removing any of the module's files. Any such exceptions are 316 * caught internally. If only one is caught, then it is re-thrown. 317 * If more than one exception is caught, then the second and 318 * following exceptions are added as suppressed exceptions of the 319 * first one caught, which is then re-thrown. 320 */ 321 public abstract void removeForcibly(List<ModuleId> mids) 322 throws IOException; 323 324 /** 325 * Find a resource within the given module in this library. 326 * 327 * @param mid 328 * The module's identifier 329 * 330 * @param rn 331 * The name of the requested resource, in the usual 332 * slash-separated form 333 * 334 * @return A {@code File} object naming the location of the resource, 335 * or {@code null} if the named module does not define that 336 * resource 337 */ 338 // ## Returning file or jar URIs here is EVIL! 339 // ## Define a jmod: hierarchical URI scheme? 340 public abstract URI findLocalResource(ModuleId mid, String rn) 341 throws IOException; 342 343 /** 344 * Find a native library within the given module in this library. |