You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by dh...@apache.org on 2016/10/26 16:43:51 UTC
[13/50] [abbrv] incubator-beam git commit: Add property name to
RuntimeValueProvider
Add property name to RuntimeValueProvider
Project: http://git-wip-us.apache.org/repos/asf/incubator-beam/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-beam/commit/462a6417
Tree: http://git-wip-us.apache.org/repos/asf/incubator-beam/tree/462a6417
Diff: http://git-wip-us.apache.org/repos/asf/incubator-beam/diff/462a6417
Branch: refs/heads/gearpump-runner
Commit: 462a6417e925e2defb42d87191fb97353637ce7e
Parents: 43beb1e
Author: sammcveety <sa...@gmail.com>
Authored: Fri Oct 14 13:41:33 2016 -0400
Committer: Dan Halperin <dh...@google.com>
Committed: Mon Oct 24 08:15:05 2016 -0700
----------------------------------------------------------------------
.../beam/sdk/options/ProxyInvocationHandler.java | 7 +++++--
.../org/apache/beam/sdk/options/ValueProvider.java | 17 ++++++++++++++---
.../apache/beam/sdk/options/ValueProviderTest.java | 7 +++++++
3 files changed, 26 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/462a6417/sdks/java/core/src/main/java/org/apache/beam/sdk/options/ProxyInvocationHandler.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/options/ProxyInvocationHandler.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/options/ProxyInvocationHandler.java
index 3e74916..f7c6da2 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/options/ProxyInvocationHandler.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/options/ProxyInvocationHandler.java
@@ -493,12 +493,15 @@ class ProxyInvocationHandler implements InvocationHandler {
}
}
if (method.getReturnType().equals(ValueProvider.class)) {
+ String propertyName = gettersToPropertyNames.get(method.getName());
return defaultObject == null
? new RuntimeValueProvider(
- method.getName(), (Class<? extends PipelineOptions>) method.getDeclaringClass(),
+ method.getName(), propertyName,
+ (Class<? extends PipelineOptions>) method.getDeclaringClass(),
proxy.getOptionsId())
: new RuntimeValueProvider(
- method.getName(), (Class<? extends PipelineOptions>) method.getDeclaringClass(),
+ method.getName(), propertyName,
+ (Class<? extends PipelineOptions>) method.getDeclaringClass(),
defaultObject, proxy.getOptionsId());
} else if (defaultObject != null) {
return defaultObject;
http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/462a6417/sdks/java/core/src/main/java/org/apache/beam/sdk/options/ValueProvider.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/options/ValueProvider.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/options/ValueProvider.java
index 04b6926..3f35a18 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/options/ValueProvider.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/options/ValueProvider.java
@@ -108,6 +108,7 @@ public interface ValueProvider<T> {
private final Class<? extends PipelineOptions> klass;
private final String methodName;
+ private final String propertyName;
@Nullable
private final T defaultValue;
private final Long optionsId;
@@ -116,9 +117,10 @@ public interface ValueProvider<T> {
* Creates a {@link RuntimeValueProvider} that will query the provided
* {@code optionsId} for a value.
*/
- RuntimeValueProvider(String methodName, Class<? extends PipelineOptions> klass,
- Long optionsId) {
+ RuntimeValueProvider(String methodName, String propertyName,
+ Class<? extends PipelineOptions> klass, Long optionsId) {
this.methodName = methodName;
+ this.propertyName = propertyName;
this.klass = klass;
this.defaultValue = null;
this.optionsId = optionsId;
@@ -128,9 +130,11 @@ public interface ValueProvider<T> {
* Creates a {@link RuntimeValueProvider} that will query the provided
* {@code optionsId} for a value, or use the default if no value is available.
*/
- RuntimeValueProvider(String methodName, Class<? extends PipelineOptions> klass,
+ RuntimeValueProvider(String methodName, String propertyName,
+ Class<? extends PipelineOptions> klass,
T defaultValue, Long optionsId) {
this.methodName = methodName;
+ this.propertyName = propertyName;
this.klass = klass;
this.defaultValue = defaultValue;
this.optionsId = optionsId;
@@ -167,6 +171,13 @@ public interface ValueProvider<T> {
PipelineOptions options = optionsMap.get(optionsId);
return options != null;
}
+
+ /**
+ * Returns the property name that corresponds to this provider.
+ */
+ public String propertyName() {
+ return propertyName;
+ }
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/462a6417/sdks/java/core/src/test/java/org/apache/beam/sdk/options/ValueProviderTest.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/options/ValueProviderTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/options/ValueProviderTest.java
index 0d93b31..c9eb479 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/options/ValueProviderTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/options/ValueProviderTest.java
@@ -98,6 +98,13 @@ public class ValueProviderTest {
}
@Test
+ public void testRuntimePropertyName() {
+ TestOptions options = PipelineOptionsFactory.as(TestOptions.class);
+ ValueProvider<String> provider = options.getFoo();
+ assertEquals("foo", ((RuntimeValueProvider) provider).propertyName());
+ }
+
+ @Test
public void testDefaultRuntimeProvider() {
TestOptions options = PipelineOptionsFactory.as(TestOptions.class);
ValueProvider<String> provider = options.getBar();