com.stormpath.sdk.impl.provider.AbstractSocialProviderAccountRequestBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of stormpath-sdk-impl Show documentation
Show all versions of stormpath-sdk-impl Show documentation
The Stormpath Java SDK core implemenation .jar is used at runtime to support API invocations. This
implementation jar should be a runtime dependency only and should NOT be depended on at compile time by
your code. The implementations within this jar can change at any time without warning - use it with runtime
scope only.
package com.stormpath.sdk.impl.provider;
import com.stormpath.sdk.lang.Assert;
import com.stormpath.sdk.provider.ProviderAccountRequest;
import com.stormpath.sdk.provider.ProviderAccountRequestBuilder;
import com.stormpath.sdk.provider.ProviderData;
import java.util.HashMap;
import java.util.Map;
import static com.stormpath.sdk.lang.Strings.hasText;
/**
* @since 1.2.0
*/
abstract class AbstractSocialProviderAccountRequestBuilder> extends AbstractProviderAccountRequestBuilder {
@Override
protected ProviderAccountRequest doBuild(Map map) {
Assert.state(hasText(this.code) ^ hasText(super.accessToken), "Either accessToken or code must be provided before building.");
Map properties = new HashMap<>(map);
if (hasText(accessToken)) {
properties.put("accessToken", accessToken);
} else {
properties.put("code", code);
}
ProviderData providerData = newProviderData(properties);
return new DefaultProviderAccountRequest(providerData, redirectUri);
}
protected abstract ProviderData newProviderData(Map properties);
}