summaryrefslogtreecommitdiffstats
path: root/sched
diff options
context:
space:
mode:
authorYohann Roussel <yroussel@google.com>2015-02-26 12:12:29 +0100
committerYohann Roussel <yroussel@google.com>2015-03-09 11:51:13 +0100
commit20ef3af418a5acd49b202a5b9441127689a79508 (patch)
tree04559091d8f59dfe21ec3bf526e11bc85c4b124e /sched
parent333ae04259121a4e8de25236509a658a347071ab (diff)
downloadtoolchain_jack-20ef3af418a5acd49b202a5b9441127689a79508.tar.gz
toolchain_jack-20ef3af418a5acd49b202a5b9441127689a79508.tar.bz2
toolchain_jack-20ef3af418a5acd49b202a5b9441127689a79508.zip
Handle input sources as a property
Change-Id: I91e3c26270f821741fa79f3d972e5b1454b00b0e
Diffstat (limited to 'sched')
-rw-r--r--sched/src/com/android/sched/util/codec/DirectFSCodec.java2
-rw-r--r--sched/src/com/android/sched/util/codec/DirectoryCodec.java3
-rw-r--r--sched/src/com/android/sched/util/codec/FileOrDirCodec.java4
-rw-r--r--sched/src/com/android/sched/util/codec/InputOutputVFSCodec.java3
-rw-r--r--sched/src/com/android/sched/util/codec/InputStreamCodec.java3
-rw-r--r--sched/src/com/android/sched/util/codec/InputStreamOrDirectoryCodec.java40
-rw-r--r--sched/src/com/android/sched/util/codec/InputVFSCodec.java3
-rw-r--r--sched/src/com/android/sched/util/codec/OutputStreamCodec.java3
-rw-r--r--sched/src/com/android/sched/util/codec/OutputVFSCodec.java2
-rw-r--r--sched/src/com/android/sched/util/codec/StreamCodec.java3
-rw-r--r--sched/src/com/android/sched/util/codec/ZipFSCodec.java2
11 files changed, 52 insertions, 16 deletions
diff --git a/sched/src/com/android/sched/util/codec/DirectFSCodec.java b/sched/src/com/android/sched/util/codec/DirectFSCodec.java
index 78a69a73..7b6ab631 100644
--- a/sched/src/com/android/sched/util/codec/DirectFSCodec.java
+++ b/sched/src/com/android/sched/util/codec/DirectFSCodec.java
@@ -33,7 +33,7 @@ import javax.annotation.Nonnull;
* This {@link StringCodec} is used to create an instance of {@link VFS} backed by a
* filesystem directory.
*/
-public class DirectFSCodec extends FileOrDirCodec implements StringCodec<VFS> {
+public class DirectFSCodec extends FileOrDirCodec<VFS> {
public DirectFSCodec() {
super(Existence.MUST_EXIST, Permission.READ | Permission.WRITE);
diff --git a/sched/src/com/android/sched/util/codec/DirectoryCodec.java b/sched/src/com/android/sched/util/codec/DirectoryCodec.java
index 0f487540..da7505eb 100644
--- a/sched/src/com/android/sched/util/codec/DirectoryCodec.java
+++ b/sched/src/com/android/sched/util/codec/DirectoryCodec.java
@@ -30,8 +30,7 @@ import javax.annotation.Nonnull;
/**
* This {@link StringCodec} is used to create an instance of {@link Directory}.
*/
-public class DirectoryCodec extends FileOrDirCodec
- implements StringCodec<Directory> {
+public class DirectoryCodec extends FileOrDirCodec<Directory> {
public DirectoryCodec(@Nonnull Existence existence, int permissions) {
super(existence, permissions);
diff --git a/sched/src/com/android/sched/util/codec/FileOrDirCodec.java b/sched/src/com/android/sched/util/codec/FileOrDirCodec.java
index 84f80827..b1ce9c5e 100644
--- a/sched/src/com/android/sched/util/codec/FileOrDirCodec.java
+++ b/sched/src/com/android/sched/util/codec/FileOrDirCodec.java
@@ -16,7 +16,6 @@
package com.android.sched.util.codec;
-import com.android.sched.util.codec.Parser.ValueDescription;
import com.android.sched.util.file.FileOrDirectory.ChangePermission;
import com.android.sched.util.file.FileOrDirectory.Existence;
import com.android.sched.util.file.FileOrDirectory.Permission;
@@ -29,7 +28,7 @@ import javax.annotation.Nonnull;
/**
* Abstract class for a File or Directory {@link StringCodec}.
*/
-public abstract class FileOrDirCodec {
+public abstract class FileOrDirCodec<T> implements StringCodec<T> {
@Nonnull
protected ChangePermission change = ChangePermission.NOCHANGE;
protected final int permissions;
@@ -102,6 +101,7 @@ public abstract class FileOrDirCodec {
return sb.toString();
}
+ @Override
@Nonnull
public List<ValueDescription> getValueDescriptions() {
return Collections.<ValueDescription> emptyList();
diff --git a/sched/src/com/android/sched/util/codec/InputOutputVFSCodec.java b/sched/src/com/android/sched/util/codec/InputOutputVFSCodec.java
index 2720ff33..d99a2811 100644
--- a/sched/src/com/android/sched/util/codec/InputOutputVFSCodec.java
+++ b/sched/src/com/android/sched/util/codec/InputOutputVFSCodec.java
@@ -28,8 +28,7 @@ import javax.annotation.Nonnull;
/**
* This {@link StringCodec} is used to create an instance of {@link InputOutputVFS}.
*/
-abstract class InputOutputVFSCodec extends FileOrDirCodec
- implements StringCodec<InputOutputVFS> {
+abstract class InputOutputVFSCodec extends FileOrDirCodec<InputOutputVFS> {
public InputOutputVFSCodec(@Nonnull Existence existence) {
super(existence, Permission.READ | Permission.WRITE);
diff --git a/sched/src/com/android/sched/util/codec/InputStreamCodec.java b/sched/src/com/android/sched/util/codec/InputStreamCodec.java
index de5c3fc6..d0159d20 100644
--- a/sched/src/com/android/sched/util/codec/InputStreamCodec.java
+++ b/sched/src/com/android/sched/util/codec/InputStreamCodec.java
@@ -30,8 +30,7 @@ import javax.annotation.Nonnull;
/**
* This {@link InputStreamCodec} is used to create an instance of {@link InputStreamFile}.
*/
-public class InputStreamCodec extends StreamCodec
- implements StringCodec<InputStreamFile> {
+public class InputStreamCodec extends StreamCodec<InputStreamFile> {
public InputStreamCodec() {
super(Existence.MUST_EXIST, Permission.READ);
}
diff --git a/sched/src/com/android/sched/util/codec/InputStreamOrDirectoryCodec.java b/sched/src/com/android/sched/util/codec/InputStreamOrDirectoryCodec.java
new file mode 100644
index 00000000..da77bb24
--- /dev/null
+++ b/sched/src/com/android/sched/util/codec/InputStreamOrDirectoryCodec.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.sched.util.codec;
+
+import com.android.sched.util.file.FileOrDirectory;
+import com.android.sched.util.file.FileOrDirectory.Existence;
+import com.android.sched.util.file.FileOrDirectory.Permission;
+
+import javax.annotation.Nonnull;
+
+/**
+ * This {@link StringCodec} is used to create an instance of {@link FileOrDirectory}.
+ * The file or directory must exists and be readable.
+ */
+public class InputStreamOrDirectoryCodec extends OrCodec<FileOrDirectory> {
+ @SuppressWarnings("unchecked")
+ public InputStreamOrDirectoryCodec() {
+ super(new InputStreamCodec(), new DirectoryCodec(Existence.MUST_EXIST, Permission.READ));
+ }
+
+ @Override
+ @Nonnull
+ public String formatValue(FileOrDirectory data) {
+ return data.getPath();
+ }
+} \ No newline at end of file
diff --git a/sched/src/com/android/sched/util/codec/InputVFSCodec.java b/sched/src/com/android/sched/util/codec/InputVFSCodec.java
index 4406450b..4cb6fc1c 100644
--- a/sched/src/com/android/sched/util/codec/InputVFSCodec.java
+++ b/sched/src/com/android/sched/util/codec/InputVFSCodec.java
@@ -40,8 +40,7 @@ import javax.annotation.Nonnull;
/**
* This {@link StringCodec} is used to create an instance of {@link InputVFS}.
*/
-public class InputVFSCodec extends FileOrDirCodec
- implements StringCodec<InputVFS> {
+public class InputVFSCodec extends FileOrDirCodec<InputVFS> {
@Nonnull
private final Logger logger = LoggerFactory.getLogger();
diff --git a/sched/src/com/android/sched/util/codec/OutputStreamCodec.java b/sched/src/com/android/sched/util/codec/OutputStreamCodec.java
index c642f7dc..3a8a4a2b 100644
--- a/sched/src/com/android/sched/util/codec/OutputStreamCodec.java
+++ b/sched/src/com/android/sched/util/codec/OutputStreamCodec.java
@@ -31,8 +31,7 @@ import javax.annotation.Nonnull;
/**
* This {@link OutputStreamCodec} is used to create an instance of {@link OutputStreamFile}.
*/
-public class OutputStreamCodec extends StreamCodec
- implements StringCodec<OutputStreamFile> {
+public class OutputStreamCodec extends StreamCodec<OutputStreamFile> {
private boolean append = false;
public OutputStreamCodec(@Nonnull Existence existence) {
diff --git a/sched/src/com/android/sched/util/codec/OutputVFSCodec.java b/sched/src/com/android/sched/util/codec/OutputVFSCodec.java
index 735170e5..ab521562 100644
--- a/sched/src/com/android/sched/util/codec/OutputVFSCodec.java
+++ b/sched/src/com/android/sched/util/codec/OutputVFSCodec.java
@@ -28,7 +28,7 @@ import javax.annotation.Nonnull;
/**
* This {@link StringCodec} is used to create an instance of {@link OutputVFS}.
*/
-abstract class OutputVFSCodec extends FileOrDirCodec implements StringCodec<OutputVFS> {
+abstract class OutputVFSCodec extends FileOrDirCodec<OutputVFS> {
public OutputVFSCodec(@Nonnull Existence existence) {
super(existence, Permission.READ | Permission.WRITE);
diff --git a/sched/src/com/android/sched/util/codec/StreamCodec.java b/sched/src/com/android/sched/util/codec/StreamCodec.java
index 47087967..788fa485 100644
--- a/sched/src/com/android/sched/util/codec/StreamCodec.java
+++ b/sched/src/com/android/sched/util/codec/StreamCodec.java
@@ -26,7 +26,7 @@ import javax.annotation.Nonnull;
* This {@link StringCodec} is used to help the creation of an instance inherited from
* {@link StreamFile}.
*/
-public abstract class StreamCodec extends FileOrDirCodec {
+public abstract class StreamCodec<T> extends FileOrDirCodec<T> {
@Nonnull
protected static final String STANDARD_IO_NAME = "-";
@Nonnull
@@ -42,6 +42,7 @@ public abstract class StreamCodec extends FileOrDirCodec {
((permissions & Permission.WRITE) != 0);
}
+ @Override
@Nonnull
public String getUsage() {
StringBuilder sb = new StringBuilder();
diff --git a/sched/src/com/android/sched/util/codec/ZipFSCodec.java b/sched/src/com/android/sched/util/codec/ZipFSCodec.java
index 035a2e4c..4aedfc33 100644
--- a/sched/src/com/android/sched/util/codec/ZipFSCodec.java
+++ b/sched/src/com/android/sched/util/codec/ZipFSCodec.java
@@ -34,7 +34,7 @@ import javax.annotation.Nonnull;
* This {@link StringCodec} is used to create an instance of {@link VFS} backed by a
* filesystem directory, which is then zipped when closed.
*/
-public class ZipFSCodec extends FileOrDirCodec implements StringCodec<VFS> {
+public class ZipFSCodec extends FileOrDirCodec<VFS> {
public ZipFSCodec(@Nonnull Existence existence) {
super(existence, Permission.READ | Permission.WRITE);