diff options
author | Benoit Lamarche <benoitlamarche@google.com> | 2015-01-27 17:00:17 +0100 |
---|---|---|
committer | Benoit Lamarche <benoitlamarche@google.com> | 2015-01-27 17:00:17 +0100 |
commit | a5e2460abfc0f99922d7a2bd9e1bf6864b079961 (patch) | |
tree | 881862682eaf755383228363bf6929100efec236 | |
parent | 30fa5753bc9fbabe444a4eabe770ac7ab6923c2a (diff) | |
download | toolchain_jack-a5e2460abfc0f99922d7a2bd9e1bf6864b079961.zip toolchain_jack-a5e2460abfc0f99922d7a2bd9e1bf6864b079961.tar.gz toolchain_jack-a5e2460abfc0f99922d7a2bd9e1bf6864b079961.tar.bz2 |
Make VFSToVFSWrapper and ReadWriteZipFS extend BaseVFS
Change-Id: I26c038dc576798b95dd1f3572024a0640293972c
-rw-r--r-- | sched/src/com/android/sched/vfs/ReadWriteZipFS.java | 102 | ||||
-rw-r--r-- | sched/src/com/android/sched/vfs/VFSToVFSWrapper.java | 104 |
2 files changed, 200 insertions, 6 deletions
diff --git a/sched/src/com/android/sched/vfs/ReadWriteZipFS.java b/sched/src/com/android/sched/vfs/ReadWriteZipFS.java index ce9b0fc..6ce9d0a 100644 --- a/sched/src/com/android/sched/vfs/ReadWriteZipFS.java +++ b/sched/src/com/android/sched/vfs/ReadWriteZipFS.java @@ -19,6 +19,7 @@ package com.android.sched.vfs; import com.google.common.io.Files; import com.android.sched.util.file.CannotCreateFileException; +import com.android.sched.util.file.CannotDeleteFileException; import com.android.sched.util.file.CannotSetPermissionException; import com.android.sched.util.file.Directory; import com.android.sched.util.file.FileAlreadyExistsException; @@ -28,12 +29,16 @@ import com.android.sched.util.file.FileOrDirectory.Permission; import com.android.sched.util.file.FileUtils; import com.android.sched.util.file.NoSuchFileException; import com.android.sched.util.file.NotDirectoryException; +import com.android.sched.util.file.NotFileException; import com.android.sched.util.file.OutputZipFile; import com.android.sched.util.file.WrongPermissionException; import com.android.sched.util.location.Location; import java.io.File; import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.Collection; import java.util.Set; import javax.annotation.Nonnull; @@ -41,7 +46,7 @@ import javax.annotation.Nonnull; /** * A {@link VFS} backed by a real filesystem directory, compressed into a zip archive when closed. */ -public class ReadWriteZipFS implements VFS { +public class ReadWriteZipFS extends BaseVFS<BaseVDir, BaseVFile> implements VFS { @Nonnull private final VFSToVFSWrapper vfs; @@ -91,7 +96,7 @@ public class ReadWriteZipFS implements VFS { @Override @Nonnull - public VDir getRootDir() { + public BaseVDir getRootDir() { return vfs.getRootDir(); } @@ -105,4 +110,97 @@ public class ReadWriteZipFS implements VFS { public Set<Capabilities> getCapabilities() { return vfs.getCapabilities(); } + + @Override + @Nonnull + InputStream openRead(@Nonnull BaseVFile file) throws WrongPermissionException { + return vfs.openRead(file); + } + + @Override + @Nonnull + OutputStream openWrite(@Nonnull BaseVFile file) throws WrongPermissionException { + return vfs.openWrite(file); + } + + @Override + @Nonnull + BaseVDir getVDir(@Nonnull BaseVDir parent, @Nonnull String name) throws NotDirectoryException, + NoSuchFileException { + return vfs.getVDir(parent, name); + } + + @Override + @Nonnull + BaseVFile getVFile(@Nonnull BaseVDir parent, @Nonnull String name) throws NotFileException, + NoSuchFileException { + return vfs.getVFile(parent, name); + } + + @Override + @Nonnull + BaseVDir createVDir(@Nonnull BaseVDir parent, @Nonnull String name) + throws CannotCreateFileException { + return vfs.createVDir(parent, name); + } + + @Override + @Nonnull + BaseVFile createVFile(@Nonnull BaseVDir parent, @Nonnull String name) + throws CannotCreateFileException { + return vfs.createVFile(parent, name); + } + + @Override + @Nonnull + void delete(@Nonnull BaseVFile file) throws CannotDeleteFileException { + vfs.delete(file); + } + + @Override + @Nonnull + Collection<? extends BaseVElement> list(@Nonnull BaseVDir dir) { + return vfs.list(dir); + } + + @Override + boolean isEmpty(@Nonnull BaseVDir dir) { + return vfs.isEmpty(dir); + } + + @Override + @Nonnull + Location getVFileLocation(@Nonnull BaseVFile file) { + return vfs.getVFileLocation(file); + } + + @Override + @Nonnull + Location getVFileLocation(@Nonnull BaseVDir parent, @Nonnull String name) { + return vfs.getVFileLocation(parent, name); + } + + @Override + @Nonnull + Location getVFileLocation(@Nonnull BaseVDir parent, @Nonnull VPath path) { + return vfs.getVFileLocation(parent, path); + } + + @Override + @Nonnull + Location getVDirLocation(@Nonnull BaseVDir dir) { + return vfs.getVDirLocation(dir); + } + + @Override + @Nonnull + Location getVDirLocation(@Nonnull BaseVDir parent, @Nonnull String name) { + return vfs.getVDirLocation(parent, name); + } + + @Override + @Nonnull + Location getVDirLocation(@Nonnull BaseVDir parent, @Nonnull VPath path) { + return vfs.getVDirLocation(parent, path); + } } diff --git a/sched/src/com/android/sched/vfs/VFSToVFSWrapper.java b/sched/src/com/android/sched/vfs/VFSToVFSWrapper.java index 3e380a6..8e26c3e 100644 --- a/sched/src/com/android/sched/vfs/VFSToVFSWrapper.java +++ b/sched/src/com/android/sched/vfs/VFSToVFSWrapper.java @@ -17,6 +17,10 @@ package com.android.sched.vfs; import com.android.sched.util.file.CannotCreateFileException; +import com.android.sched.util.file.CannotDeleteFileException; +import com.android.sched.util.file.NoSuchFileException; +import com.android.sched.util.file.NotDirectoryException; +import com.android.sched.util.file.NotFileException; import com.android.sched.util.file.WrongPermissionException; import com.android.sched.util.location.Location; import com.android.sched.util.stream.ByteStreamSucker; @@ -24,6 +28,7 @@ import com.android.sched.util.stream.ByteStreamSucker; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.util.Collection; import java.util.Collections; import java.util.EnumSet; import java.util.Set; @@ -34,7 +39,7 @@ import javax.annotation.Nonnull; * A double {@link VFS} wrapper that uses a work {@link VFS} during its life, and dumps it contents * into a final {@link VFS} when it is closed. */ -public class VFSToVFSWrapper implements VFS { +public class VFSToVFSWrapper extends BaseVFS<BaseVDir, BaseVFile> implements VFS { @Nonnull private final BaseVFS<BaseVDir, BaseVFile> workVFS; @@ -43,8 +48,6 @@ public class VFSToVFSWrapper implements VFS { @Nonnull private final Set<Capabilities> capabilities; - private boolean closed = false; - @SuppressWarnings("unchecked") public VFSToVFSWrapper(@Nonnull BaseVFS<? extends BaseVDir, ? extends BaseVFile> workVFS, @Nonnull BaseVFS<? extends BaseVDir, ? extends BaseVFile> finalVFS) { @@ -144,7 +147,7 @@ public class VFSToVFSWrapper implements VFS { @Override @Nonnull - public VDir getRootDir() { + public BaseVDir getRootDir() { return workVFS.getRootDir(); } @@ -159,4 +162,97 @@ public class VFSToVFSWrapper implements VFS { return this.capabilities; } + @Override + @Nonnull + InputStream openRead(@Nonnull BaseVFile file) throws WrongPermissionException { + return workVFS.openRead(file); + } + + @Override + @Nonnull + OutputStream openWrite(@Nonnull BaseVFile file) throws WrongPermissionException { + return workVFS.openWrite(file); + } + + @Override + @Nonnull + BaseVDir getVDir(@Nonnull BaseVDir parent, @Nonnull String name) throws NotDirectoryException, + NoSuchFileException { + return workVFS.getVDir(parent, name); + } + + @Override + @Nonnull + BaseVFile getVFile(@Nonnull BaseVDir parent, @Nonnull String name) throws NotFileException, + NoSuchFileException { + return workVFS.getVFile(parent, name); + } + + @Override + @Nonnull + BaseVDir createVDir(@Nonnull BaseVDir parent, @Nonnull String name) + throws CannotCreateFileException { + return workVFS.createVDir(parent, name); + } + + @Override + @Nonnull + BaseVFile createVFile(@Nonnull BaseVDir parent, @Nonnull String name) + throws CannotCreateFileException { + return workVFS.createVFile(parent, name); + } + + @Override + @Nonnull + void delete(@Nonnull BaseVFile file) throws CannotDeleteFileException { + workVFS.delete(file); + } + + @Override + @Nonnull + Collection<? extends BaseVElement> list(@Nonnull BaseVDir dir) { + return workVFS.list(dir); + } + + @Override + boolean isEmpty(@Nonnull BaseVDir dir) { + return workVFS.isEmpty(dir); + } + + @Override + @Nonnull + Location getVFileLocation(@Nonnull BaseVFile file) { + return finalVFS.getVFileLocation(file); + } + + @Override + @Nonnull + Location getVFileLocation(@Nonnull BaseVDir parent, @Nonnull String name) { + return finalVFS.getVFileLocation(parent, name); + } + + @Override + @Nonnull + Location getVFileLocation(@Nonnull BaseVDir parent, @Nonnull VPath path) { + return finalVFS.getVFileLocation(parent, path); + } + + @Override + @Nonnull + Location getVDirLocation(@Nonnull BaseVDir dir) { + return finalVFS.getVDirLocation(dir); + } + + @Override + @Nonnull + Location getVDirLocation(@Nonnull BaseVDir parent, @Nonnull String name) { + return finalVFS.getVDirLocation(parent, name); + } + + @Override + @Nonnull + Location getVDirLocation(@Nonnull BaseVDir parent, @Nonnull VPath path) { + return finalVFS.getVDirLocation(parent, path); + } + } |