summaryrefslogtreecommitdiffstats
path: root/sched
diff options
context:
space:
mode:
Diffstat (limited to 'sched')
-rw-r--r--sched/src/com/android/sched/util/codec/OrCodec.java30
1 files changed, 19 insertions, 11 deletions
diff --git a/sched/src/com/android/sched/util/codec/OrCodec.java b/sched/src/com/android/sched/util/codec/OrCodec.java
index c1789a1b..c4d3f8a2 100644
--- a/sched/src/com/android/sched/util/codec/OrCodec.java
+++ b/sched/src/com/android/sched/util/codec/OrCodec.java
@@ -16,10 +16,14 @@
package com.android.sched.util.codec;
+import com.google.common.base.Function;
+import com.google.common.base.Joiner;
+import com.google.common.collect.Collections2;
+
import com.android.sched.util.config.ConfigurationError;
+import java.util.Arrays;
import java.util.Collections;
-import java.util.Iterator;
import java.util.List;
import javax.annotation.CheckForNull;
@@ -35,10 +39,15 @@ public class OrCodec<T> implements StringCodec<T> {
private final List<StringCodec<? extends T>> codecList;
public OrCodec(@Nonnull List<StringCodec<? extends T>> codecList) {
- assert codecList.size() >= 1;
+ assert codecList.size() >= 2;
this.codecList = codecList;
}
+ public OrCodec(@Nonnull StringCodec<? extends T>... codecList) {
+ assert codecList.length >= 2;
+ this.codecList = Arrays.asList(codecList);
+ }
+
@Override
@Nonnull
public T parseString(@Nonnull CodecContext context, @Nonnull String string) {
@@ -65,20 +74,19 @@ public class OrCodec<T> implements StringCodec<T> {
@Override
public void checkValue(@Nonnull CodecContext context, @Nonnull T data) {
+ //STOPSHIP: TBI
}
@Override
@Nonnull
public String getUsage() {
- StringBuffer usage = new StringBuffer();
- Iterator<StringCodec<? extends T>> codecListIterator = codecList.iterator();
- while (codecListIterator.hasNext()) {
- usage.append(codecListIterator.next().getUsage());
- if (codecListIterator.hasNext()) {
- usage.append(" or ");
- }
- }
- return usage.toString();
+ return Joiner.on(" or ").join(
+ Collections2.transform(codecList, new Function<StringCodec<? extends T>, String>() {
+ @Override
+ public String apply(StringCodec<? extends T> codec) {
+ return codec.getUsage();
+ }
+ }));
}
@Override