Repository: beam Updated Branches: refs/heads/master 8fa115955 -> 5d460d2e9
Remove View indicator classes With the latest Dataflow Worker, these indicator classes have been replaced everywhere by referencing the available ViewFns. Project: http://git-wip-us.apache.org/repos/asf/beam/repo Commit: http://git-wip-us.apache.org/repos/asf/beam/commit/6933465d Tree: http://git-wip-us.apache.org/repos/asf/beam/tree/6933465d Diff: http://git-wip-us.apache.org/repos/asf/beam/diff/6933465d Branch: refs/heads/master Commit: 6933465d659d6addeb30bbd5042c7b96834e418c Parents: 8fa1159 Author: Thomas Groh <tg...@google.com> Authored: Wed Mar 29 09:53:38 2017 -0700 Committer: Thomas Groh <tg...@google.com> Committed: Wed Mar 29 13:16:31 2017 -0700 ---------------------------------------------------------------------- .../apache/beam/sdk/util/PCollectionViews.java | 148 +++---------------- 1 file changed, 18 insertions(+), 130 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/beam/blob/6933465d/sdks/java/core/src/main/java/org/apache/beam/sdk/util/PCollectionViews.java ---------------------------------------------------------------------- diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/util/PCollectionViews.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/util/PCollectionViews.java index 848d8b3..0794703 100644 --- a/sdks/java/core/src/main/java/org/apache/beam/sdk/util/PCollectionViews.java +++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/util/PCollectionViews.java @@ -65,14 +65,11 @@ public class PCollectionViews { boolean hasDefault, @Nullable T defaultValue, Coder<T> valueCoder) { - // TODO: as soon as runners are ported off the indicator classes, - // return new SimplePCollectionView<>( - // pipeline, - // new SingletonViewFn<K, V>(hasDefault, defaultValue, valueCoder), - // windowingStrategy, - // valueCoder); - return new SingletonPCollectionView<>( - pipeline, windowingStrategy, hasDefault, defaultValue, valueCoder); + return new SimplePCollectionView<>( + pipeline, + new SingletonViewFn<>(hasDefault, defaultValue, valueCoder), + windowingStrategy, + valueCoder); } /** @@ -83,10 +80,8 @@ public class PCollectionViews { Pipeline pipeline, WindowingStrategy<?, W> windowingStrategy, Coder<T> valueCoder) { - // TODO: as soon as runners are ported off the indicator classes, - // return new SimplePCollectionView<>( - // pipeline, new IterableViewFn<T>(), windowingStrategy, valueCoder); - return new IterablePCollectionView<>(pipeline, windowingStrategy, valueCoder); + return new SimplePCollectionView<>( + pipeline, new IterableViewFn<T>(), windowingStrategy, valueCoder); } /** @@ -97,10 +92,8 @@ public class PCollectionViews { Pipeline pipeline, WindowingStrategy<?, W> windowingStrategy, Coder<T> valueCoder) { - // TODO: as soon as runners are ported off the indicator classes, - // return new SimplePCollectionView<>( - // pipeline, new ListViewFn<T>(), windowingStrategy, valueCoder); - return new ListPCollectionView<>(pipeline, windowingStrategy, valueCoder); + return new SimplePCollectionView<>( + pipeline, new ListViewFn<T>(), windowingStrategy, valueCoder); } /** @@ -108,13 +101,9 @@ public class PCollectionViews { * provided {@link Coder} and windowed using the provided {@link WindowingStrategy}. */ public static <K, V, W extends BoundedWindow> PCollectionView<Map<K, V>> mapView( - Pipeline pipeline, - WindowingStrategy<?, W> windowingStrategy, - Coder<KV<K, V>> valueCoder) { - // TODO: as soon as runners are ported off the indicator classes, - // return new SimplePCollectionView<>( - // pipeline, new MapViewFn<K, V>(), windowingStrategy, valueCoder); - return new MapPCollectionView<>(pipeline, windowingStrategy, valueCoder); + Pipeline pipeline, WindowingStrategy<?, W> windowingStrategy, Coder<KV<K, V>> valueCoder) { + return new SimplePCollectionView<>( + pipeline, new MapViewFn<K, V>(), windowingStrategy, valueCoder); } /** @@ -125,105 +114,10 @@ public class PCollectionViews { Pipeline pipeline, WindowingStrategy<?, W> windowingStrategy, Coder<KV<K, V>> valueCoder) { - // TODO: as soon as runners are ported off the indicator classes, - // return new SimplePCollectionView<>( - // pipeline, new MultimapViewFn<K, V>(), windowingStrategy, valueCoder); - return new MultimapPCollectionView<>(pipeline, windowingStrategy, valueCoder); - } - - /** - * A public indicator class that this view is a singleton view. - * - * @deprecated Runners should not inspect the {@link PCollectionView} subclass, as it is an - * implementation detail. To specialize a side input, a runner should inspect the - * language-independent metadata of the {@link ViewFn}. - */ - @Deprecated - public static class SingletonPCollectionView<T, W extends BoundedWindow> - extends SimplePCollectionView<T, T, W> { - public SingletonPCollectionView( - Pipeline pipeline, - WindowingStrategy<?, W> windowingStrategy, - boolean hasDefault, - T defaultValue, - Coder<T> valueCoder) { - super( - pipeline, - new SingletonViewFn<>(hasDefault, defaultValue, valueCoder), - windowingStrategy, - valueCoder); - } - - public T getDefaultValue() { - return ((SingletonViewFn<T>) viewFn).getDefaultValue(); - } - } - - /** - * A public indicator class that this view is an iterable view. - * - * @deprecated Runners should not inspect the {@link PCollectionView} subclass, as it is an - * implementation detail. To specialize a side input, a runner should inspect the - * language-independent metadata of the {@link ViewFn}. - */ - @Deprecated - public static class IterablePCollectionView<ElemT, W extends BoundedWindow> - extends SimplePCollectionView<ElemT, Iterable<ElemT>, W> { - public IterablePCollectionView( - Pipeline pipeline, WindowingStrategy<?, W> windowingStrategy, Coder<ElemT> valueCoder) { - super(pipeline, new IterableViewFn<ElemT>(), windowingStrategy, valueCoder); - } - } - - /** - * A public indicator class that this view is a list view. - * - * @deprecated Runners should not inspect the {@link PCollectionView} subclass, as it is an - * implementation detail. To specialize a side input, a runner should inspect the - * language-independent metadata of the {@link ViewFn}. - */ - @Deprecated - public static class ListPCollectionView<ElemT, W extends BoundedWindow> - extends SimplePCollectionView<ElemT, List<ElemT>, W> { - public ListPCollectionView( - Pipeline pipeline, WindowingStrategy<?, W> windowingStrategy, Coder<ElemT> valueCoder) { - super(pipeline, new ListViewFn<ElemT>(), windowingStrategy, valueCoder); - } - } - - /** - * A public indicator class that this view is a map view. - * - * @deprecated Runners should not inspect the {@link PCollectionView} subclass, as it is an - * implementation detail. To specialize a side input, a runner should inspect the - * language-independent metadata of the {@link ViewFn}. - */ - @Deprecated - public static class MapPCollectionView<K, V, W extends BoundedWindow> - extends SimplePCollectionView<KV<K, V>, Map<K, V>, W> { - public MapPCollectionView( - Pipeline pipeline, WindowingStrategy<?, W> windowingStrategy, Coder<KV<K, V>> valueCoder) { - super(pipeline, new MapViewFn<K, V>(), windowingStrategy, valueCoder); - } - } - - /** - * A public indicator class that this view is a multimap view. - * - * @deprecated Runners should not inspect the {@link PCollectionView} subclass, as it is an - * implementation detail. To specialize a side input, a runner should inspect the - * language-independent metadata of the {@link ViewFn}. - */ - @Deprecated - public static class MultimapPCollectionView<K, V, W extends BoundedWindow> - extends SimplePCollectionView<KV<K, V>, Map<K, Iterable<V>>, W> { - public MultimapPCollectionView( - Pipeline pipeline, WindowingStrategy<?, W> windowingStrategy, Coder<KV<K, V>> valueCoder) { - super(pipeline, new MultimapViewFn<K, V>(), windowingStrategy, valueCoder); - } + return new SimplePCollectionView<>( + pipeline, new MultimapViewFn<K, V>(), windowingStrategy, valueCoder); } - /** * Implementation of conversion of singleton {@code Iterable<WindowedValue<T>>} to {@code T}. * @@ -401,7 +295,7 @@ public class PCollectionViews { } /** - * A base class for {@link PCollectionView} implementations, with additional type parameters + * A class for {@link PCollectionView} implementations, with additional type parameters * that are not visible at pipeline assembly time when the view is used as a side input. */ private static class SimplePCollectionView<ElemT, ViewT, W extends BoundedWindow> @@ -418,19 +312,14 @@ public class PCollectionViews { /** * The typed {@link ViewFn} for this view. - * - * @deprecated Access to this variable from subclasses is temporary, for migrating away - * from language-specific inspections. */ - @Deprecated - protected ViewFn<Iterable<WindowedValue<ElemT>>, ViewT> viewFn; + private ViewFn<Iterable<WindowedValue<ElemT>>, ViewT> viewFn; /** * Call this constructor to initialize the fields for which this base class provides * boilerplate accessors. */ - // TODO: make private as soon as runners are ported off indicator subclasses - protected SimplePCollectionView( + private SimplePCollectionView( Pipeline pipeline, TupleTag<Iterable<WindowedValue<ElemT>>> tag, ViewFn<Iterable<WindowedValue<ElemT>>, ViewT> viewFn, @@ -452,8 +341,7 @@ public class PCollectionViews { * Call this constructor to initialize the fields for which this base class provides * boilerplate accessors, with an auto-generated tag. */ - // TODO: make private as soon as runners are ported off indicator subclasses - protected SimplePCollectionView( + private SimplePCollectionView( Pipeline pipeline, ViewFn<Iterable<WindowedValue<ElemT>>, ViewT> viewFn, WindowingStrategy<?, W> windowingStrategy,