< prev index next >

src/jdk.jlink/share/classes/jdk/tools/jlink/internal/ResourcePoolManager.java

Print this page




 196 
 197     class ResourcePoolModuleViewImpl implements ResourcePoolModuleView {
 198         @Override
 199         public Optional<ResourcePoolModule> findModule(String name) {
 200             return ResourcePoolManager.this.findModule(name);
 201         }
 202 
 203         @Override
 204         public Stream<ResourcePoolModule> modules() {
 205             return ResourcePoolManager.this.modules();
 206         }
 207 
 208         @Override
 209         public int moduleCount() {
 210             return ResourcePoolManager.this.moduleCount();
 211         }
 212     }
 213 
 214     private final Map<String, ResourcePoolEntry> resources = new LinkedHashMap<>();
 215     private final Map<String, ResourcePoolModule> modules = new LinkedHashMap<>();
 216     private final ResourcePoolModuleImpl fileCopierModule = new ResourcePoolModuleImpl(FileCopierPlugin.FAKE_MODULE);
 217     private final ByteOrder order;
 218     private final StringTable table;
 219     private final ResourcePool poolImpl;
 220     private final ResourcePoolBuilder poolBuilderImpl;
 221     private final ResourcePoolModuleView moduleViewImpl;
 222 
 223     public ResourcePoolManager() {
 224         this(ByteOrder.nativeOrder());
 225     }
 226 
 227     public ResourcePoolManager(ByteOrder order) {
 228         this(order, new StringTable() {
 229 
 230             @Override
 231             public int addString(String str) {
 232                 return -1;
 233             }
 234 
 235             @Override
 236             public String getString(int id) {


 255         return poolBuilderImpl;
 256     }
 257 
 258     public ResourcePoolModuleView moduleView() {
 259         return moduleViewImpl;
 260     }
 261 
 262     /**
 263      * Add a ResourcePoolEntry.
 264      *
 265      * @param data The ResourcePoolEntry to add.
 266      */
 267     public void add(ResourcePoolEntry data) {
 268         Objects.requireNonNull(data);
 269         if (resources.get(data.path()) != null) {
 270             throw new PluginException("Resource " + data.path()
 271                     + " already present");
 272         }
 273         String modulename = data.moduleName();
 274         ResourcePoolModuleImpl m = (ResourcePoolModuleImpl)modules.get(modulename);
 275         // ## TODO: FileCopierPlugin should not add content to a module
 276         // FAKE_MODULE is not really a module to be added in the image
 277         if (FileCopierPlugin.FAKE_MODULE.equals(modulename)) {
 278             m = fileCopierModule;
 279         }
 280         if (m == null) {
 281             m = new ResourcePoolModuleImpl(modulename);
 282             modules.put(modulename, m);
 283         }
 284         resources.put(data.path(), data);
 285         m.moduleContent.put(data.path(), data);
 286     }
 287 
 288     /**
 289      * Retrieves the module for the provided name.
 290      *
 291      * @param name The module name
 292      * @return the module of matching name, if found
 293      */
 294     public Optional<ResourcePoolModule> findModule(String name) {
 295         Objects.requireNonNull(name);
 296         return Optional.ofNullable(modules.get(name));
 297     }
 298 
 299     /**




 196 
 197     class ResourcePoolModuleViewImpl implements ResourcePoolModuleView {
 198         @Override
 199         public Optional<ResourcePoolModule> findModule(String name) {
 200             return ResourcePoolManager.this.findModule(name);
 201         }
 202 
 203         @Override
 204         public Stream<ResourcePoolModule> modules() {
 205             return ResourcePoolManager.this.modules();
 206         }
 207 
 208         @Override
 209         public int moduleCount() {
 210             return ResourcePoolManager.this.moduleCount();
 211         }
 212     }
 213 
 214     private final Map<String, ResourcePoolEntry> resources = new LinkedHashMap<>();
 215     private final Map<String, ResourcePoolModule> modules = new LinkedHashMap<>();

 216     private final ByteOrder order;
 217     private final StringTable table;
 218     private final ResourcePool poolImpl;
 219     private final ResourcePoolBuilder poolBuilderImpl;
 220     private final ResourcePoolModuleView moduleViewImpl;
 221 
 222     public ResourcePoolManager() {
 223         this(ByteOrder.nativeOrder());
 224     }
 225 
 226     public ResourcePoolManager(ByteOrder order) {
 227         this(order, new StringTable() {
 228 
 229             @Override
 230             public int addString(String str) {
 231                 return -1;
 232             }
 233 
 234             @Override
 235             public String getString(int id) {


 254         return poolBuilderImpl;
 255     }
 256 
 257     public ResourcePoolModuleView moduleView() {
 258         return moduleViewImpl;
 259     }
 260 
 261     /**
 262      * Add a ResourcePoolEntry.
 263      *
 264      * @param data The ResourcePoolEntry to add.
 265      */
 266     public void add(ResourcePoolEntry data) {
 267         Objects.requireNonNull(data);
 268         if (resources.get(data.path()) != null) {
 269             throw new PluginException("Resource " + data.path()
 270                     + " already present");
 271         }
 272         String modulename = data.moduleName();
 273         ResourcePoolModuleImpl m = (ResourcePoolModuleImpl)modules.get(modulename);





 274         if (m == null) {
 275             m = new ResourcePoolModuleImpl(modulename);
 276             modules.put(modulename, m);
 277         }
 278         resources.put(data.path(), data);
 279         m.moduleContent.put(data.path(), data);
 280     }
 281 
 282     /**
 283      * Retrieves the module for the provided name.
 284      *
 285      * @param name The module name
 286      * @return the module of matching name, if found
 287      */
 288     public Optional<ResourcePoolModule> findModule(String name) {
 289         Objects.requireNonNull(name);
 290         return Optional.ofNullable(modules.get(name));
 291     }
 292 
 293     /**


< prev index next >