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); }