private static <A extends LibraryStorageArea> LibraryImplementation2 createLibrary0(ArealLibraryProvider<A,?> alp, String type, String name, LibraryStorageArea area, Map<String,List<URI>> contents) throws IOException { return alp.createLibrary(type, name, alp.areaType().cast(area), contents); } }
private static <A extends LibraryStorageArea> LibraryProvider getLibraries0(ArealLibraryProvider<A,?> alp, LibraryStorageArea area) { return alp.getLibraries(alp.areaType().cast(area)); }
private static <L extends LibraryImplementation2> void remove0(ArealLibraryProvider<?,L> alp, LibraryImplementation2 lib) throws IOException { alp.remove(alp.libraryType().cast(lib)); }
public Collection<? extends LibraryStorageArea> getAreas() { Set<LibraryStorageArea> areas = new HashSet<LibraryStorageArea>(); for (ArealLibraryProvider<?,?> alp : Lookup.getDefault().lookupAll(ArealLibraryProvider.class)) { for (LibraryStorageArea area : alp.getOpenAreas()) { area2Storage.put(area, alp); areas.add(area); } } for (ArealLibraryProvider alp : Lookup.getDefault().lookupAll(ArealLibraryProvider.class)) { for (URL location : createdAreas) { LibraryStorageArea area = alp.loadArea(location); if (area != null) { assert area.getLocation().equals(location) : "Bad location " + area.getLocation() + " does not match " + location + " from " + alp.getClass().getName(); area2Storage.put(area, alp); areas.add(area); } } } return areas; }
public LibraryStorageArea createArea() { for (ArealLibraryProvider alp : Lookup.getDefault().lookupAll(ArealLibraryProvider.class)) { LibraryStorageArea area = alp.createArea(); if (area != null) { createdAreas.add(area.getLocation()); area2Storage.put(area, alp); propertyChange(null); // recompute libraries & fire change return area; } } return null; }
@NonNull private LibraryStorageArea findLibraryStorageArea(@NonNull final URL u) { for (ArealLibraryProvider<?,?> alp : Lookup.getDefault().lookupAll(ArealLibraryProvider.class)) { for (LibraryStorageArea area : alp.getOpenAreas()) { if (u.toString().equals(area.getLocation().toString())) { return area; } } } return LibraryStorageArea.GLOBAL; }
public LibrariesModel () { this.addedLibraries = new ArrayList<LibraryImplementation>(); this.removedLibraries = new ArrayList<LibraryImplementation>(); this.changedLibraries = new ArrayList<ProxyLibraryImplementation>(); for (LibraryProvider lp : Lookup.getDefault().lookupAll(LibraryProvider.class)) { lp.addPropertyChangeListener(WeakListeners.propertyChange(this, lp)); if (writableProvider == null && lp instanceof WritableLibraryProvider) { writableProvider = (WritableLibraryProvider) lp; } } for (ArealLibraryProvider alp : Lookup.getDefault().lookupAll(ArealLibraryProvider.class)) { alp.addPropertyChangeListener(WeakListeners.propertyChange(this, alp)); } this.computeLibraries(); }