From 22f5c38e7b08af4fb805ae64ae9ac58d6dbb0599 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andre=CC=81=20Tietz?= Date: Fri, 18 Mar 2016 17:57:54 +0100 Subject: [PATCH] service builder more generic --- .../core/builder/AbstractServiceBuilder.java | 18 +++++------------- .../scribejava/core/builder/api/BaseApi.java | 9 +++++++++ .../core/builder/api/DefaultApi10a.java | 3 ++- .../core/builder/api/DefaultApi20.java | 3 ++- 4 files changed, 18 insertions(+), 15 deletions(-) create mode 100644 scribejava-core/src/main/java/com/github/scribejava/core/builder/api/BaseApi.java diff --git a/scribejava-core/src/main/java/com/github/scribejava/core/builder/AbstractServiceBuilder.java b/scribejava-core/src/main/java/com/github/scribejava/core/builder/AbstractServiceBuilder.java index 7c34f0dae..cfe7f7a7a 100644 --- a/scribejava-core/src/main/java/com/github/scribejava/core/builder/AbstractServiceBuilder.java +++ b/scribejava-core/src/main/java/com/github/scribejava/core/builder/AbstractServiceBuilder.java @@ -1,5 +1,6 @@ package com.github.scribejava.core.builder; +import com.github.scribejava.core.builder.api.BaseApi; import com.github.scribejava.core.builder.api.DefaultApi10a; import com.github.scribejava.core.builder.api.DefaultApi20; import com.github.scribejava.core.model.OAuthConfig; @@ -8,6 +9,7 @@ import com.github.scribejava.core.model.SignatureType; import com.github.scribejava.core.oauth.OAuth10aService; import com.github.scribejava.core.oauth.OAuth20Service; +import com.github.scribejava.core.oauth.OAuthService; import com.github.scribejava.core.utils.Preconditions; abstract class AbstractServiceBuilder> { @@ -176,22 +178,12 @@ public String getResponseType() { protected abstract OAuthConfig createConfig(); /** - * Returns the fully configured {@link OAuth10aService} + * Returns the fully configured {@link S} * * @param api will build Service for this API - * @return fully configured {@link OAuth10aService} + * @return fully configured {@link S} */ - public OAuth10aService build(DefaultApi10a api) { - return api.createService(createConfig()); - } - - /** - * Returns the fully configured {@link OAuth20Service} - * - * @param api will build Service for this API - * @return fully configured {@link OAuth20Service} - */ - public OAuth20Service build(DefaultApi20 api) { + public S build(BaseApi api) { return api.createService(createConfig()); } } diff --git a/scribejava-core/src/main/java/com/github/scribejava/core/builder/api/BaseApi.java b/scribejava-core/src/main/java/com/github/scribejava/core/builder/api/BaseApi.java new file mode 100644 index 000000000..742a92b09 --- /dev/null +++ b/scribejava-core/src/main/java/com/github/scribejava/core/builder/api/BaseApi.java @@ -0,0 +1,9 @@ +package com.github.scribejava.core.builder.api; + +import com.github.scribejava.core.model.OAuthConfig; +import com.github.scribejava.core.oauth.OAuthService; + + +public interface BaseApi { + T createService(OAuthConfig config); +} diff --git a/scribejava-core/src/main/java/com/github/scribejava/core/builder/api/DefaultApi10a.java b/scribejava-core/src/main/java/com/github/scribejava/core/builder/api/DefaultApi10a.java index f0920e103..3b4b148c6 100644 --- a/scribejava-core/src/main/java/com/github/scribejava/core/builder/api/DefaultApi10a.java +++ b/scribejava-core/src/main/java/com/github/scribejava/core/builder/api/DefaultApi10a.java @@ -30,7 +30,7 @@ * fine-tune the process. Please read the javadocs of the interfaces to get an idea of what to do. * */ -public abstract class DefaultApi10a { +public abstract class DefaultApi10a implements BaseApi { /** * Returns the access token extractor. @@ -126,6 +126,7 @@ public Verb getRequestTokenVerb() { */ public abstract String getAuthorizationUrl(OAuth1RequestToken requestToken); + @Override public OAuth10aService createService(OAuthConfig config) { return new OAuth10aService(this, config); } diff --git a/scribejava-core/src/main/java/com/github/scribejava/core/builder/api/DefaultApi20.java b/scribejava-core/src/main/java/com/github/scribejava/core/builder/api/DefaultApi20.java index 4e27aebb0..30095f134 100644 --- a/scribejava-core/src/main/java/com/github/scribejava/core/builder/api/DefaultApi20.java +++ b/scribejava-core/src/main/java/com/github/scribejava/core/builder/api/DefaultApi20.java @@ -22,7 +22,7 @@ * fine-tune the process. Please read the javadocs of the interfaces to get an idea of what to do. * */ -public abstract class DefaultApi20 { +public abstract class DefaultApi20 implements BaseApi { /** * Returns the access token extractor. @@ -88,6 +88,7 @@ public String getAuthorizationUrl(OAuthConfig config, Map additi return authUrl; } + @Override public OAuth20Service createService(OAuthConfig config) { return new OAuth20Service(this, config); }