summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenoit Lamarche <benoitlamarche@google.com>2015-01-27 17:00:17 +0100
committerBenoit Lamarche <benoitlamarche@google.com>2015-01-27 17:00:17 +0100
commita5e2460abfc0f99922d7a2bd9e1bf6864b079961 (patch)
tree881862682eaf755383228363bf6929100efec236
parent30fa5753bc9fbabe444a4eabe770ac7ab6923c2a (diff)
downloadtoolchain_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.java102
-rw-r--r--sched/src/com/android/sched/vfs/VFSToVFSWrapper.java104
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);
+ }
+
}