@Override public Resource get(String resourcePath) { return new ResourceAdaptor(new File(file, resourcePath)); }
@Override public OutputStream out() { final File actualFile = file(); if (!actualFile.exists()) { throw new IllegalStateException("Cannot access " + actualFile);
/** * Adapter allowing a File reference to be quickly used a Resource. * * <p>This is used as a placeholder when updating code to use resource, while still maintaining * deprecated File methods: * * <pre><code> * //deprecated * public FileWatcher( File file ){ * this.resource = Files.asResource( file ); * } * //deprecated * public FileWatcher( Resource resource ){ * this.resource = resource; * } * </code></pre> * * Note this only an adapter for single files (not directories). * * @param file File to adapt as a Resource * @return resource adaptor for provided file */ public static Resource asResource(final File file) { if (file == null) { throw new IllegalArgumentException("File required"); } return new ResourceAdaptor(file); }
@Override public void removeListener(ResourceListener listener) { watcher.removeListener(path(), listener); }
@Override public void addListener(ResourceListener listener) { watcher.addListener(path(), listener); }
@Override public List<Resource> list() { if (!file.isDirectory()) { return Collections.emptyList(); } List<Resource> result = new ArrayList<Resource>(); for (File child : file.listFiles()) { result.add(new ResourceAdaptor(child)); } return result; }
@Override public Resource parent() { return new ResourceAdaptor(file.getParentFile()); }
@Override public InputStream in() { final File actualFile = file(); if (!actualFile.exists()) { throw new IllegalStateException("Cannot access " + actualFile); } try { return new FileInputStream(actualFile); } catch (IOException e) { throw new IllegalStateException(e); } }