diff options
author | Yohann Roussel <yroussel@google.com> | 2015-02-26 12:12:29 +0100 |
---|---|---|
committer | Yohann Roussel <yroussel@google.com> | 2015-03-09 11:51:13 +0100 |
commit | 20ef3af418a5acd49b202a5b9441127689a79508 (patch) | |
tree | 04559091d8f59dfe21ec3bf526e11bc85c4b124e /sched/src/com/android/sched | |
parent | 333ae04259121a4e8de25236509a658a347071ab (diff) | |
download | toolchain_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/src/com/android/sched')
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); |