class CronofyApi20 extends DefaultApi20 {

    private final String sdkIdentifier;

    /**
     * <p>Constructor for CronofyApi20.</p>
     *
     * @param sdkIdentifier a {@link String} object
     */
    public CronofyApi20(final String sdkIdentifier) {
        this.sdkIdentifier = sdkIdentifier;
    }

    /** {@inheritDoc} */
    @Override
    public String getAccessTokenEndpoint() {
        return computeBaseUrl() + "/oauth/token";
    }

    /** {@inheritDoc} */
    @Override
    protected String getAuthorizationBaseUrl() {
        return computeBaseUrl() + "/oauth/authorize";
    }

    private String computeBaseUrl() {<FILL_FUNCTION_BODY>}

    /** {@inheritDoc} */
    @Override
    public OAuth20Service createService(String apiKey, String apiSecret, String callback, String defaultScope,
                                        String responseType, OutputStream debugStream, String userAgent,
                                        HttpClientConfig httpClientConfig, HttpClient httpClient) {
        return new CronofyService(this, apiKey, apiSecret, callback, defaultScope, responseType, debugStream,
            userAgent, httpClientConfig, httpClient);
    }
}

        if (CommonHelper.isNotBlank(sdkIdentifier)) {
            return "https://app-" + sdkIdentifier + ".cronofy.com";
        } else {
            return "https://app.cronofy.com";
        }
    
<methods>public void <init>() ,public com.github.scribejava.core.oauth.OAuth20Service createService(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.io.OutputStream, java.lang.String, com.github.scribejava.core.httpclient.HttpClientConfig, com.github.scribejava.core.httpclient.HttpClient) ,public abstract java.lang.String getAccessTokenEndpoint() ,public TokenExtractor<com.github.scribejava.core.model.OAuth2AccessToken> getAccessTokenExtractor() ,public com.github.scribejava.core.model.Verb getAccessTokenVerb() ,public java.lang.String getAuthorizationUrl(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, Map<java.lang.String,java.lang.String>) ,public com.github.scribejava.core.oauth2.bearersignature.BearerSignature getBearerSignature() ,public com.github.scribejava.core.oauth2.clientauthentication.ClientAuthentication getClientAuthentication() ,public java.lang.String getDeviceAuthorizationEndpoint() ,public com.github.scribejava.core.extractors.DeviceAuthorizationJsonExtractor getDeviceAuthorizationExtractor() ,public java.lang.String getRefreshTokenEndpoint() ,public java.lang.String getRevokeTokenEndpoint() <variables>