//------------------------------------------------------------------------------ // Copyright (c) 2012 Microsoft Corporation. All rights reserved. // // Description: See the class level JavaDoc comments. //------------------------------------------------------------------------------ package com.microsoft.live; import java.util.List; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.message.BasicNameValuePair; import android.text.TextUtils; import com.microsoft.live.OAuth.GrantType; /** * RefreshAccessTokenRequest performs a refresh access token request. Most of the work * is done by the parent class, TokenRequest. This class adds in the required body parameters via * TokenRequest's hook method, constructBody(). */ class RefreshAccessTokenRequest extends TokenRequest { /** REQUIRED. Value MUST be set to "refresh_token". */ private final GrantType grantType = GrantType.REFRESH_TOKEN; /** REQUIRED. The refresh token issued to the client. */ private final String refreshToken; private final String scope; public RefreshAccessTokenRequest(HttpClient client, String clientId, String refreshToken, String scope) { super(client, clientId); assert refreshToken != null; assert !TextUtils.isEmpty(refreshToken); assert scope != null; assert !TextUtils.isEmpty(scope); this.refreshToken = refreshToken; this.scope = scope; } @Override protected void constructBody(List<NameValuePair> body) { body.add(new BasicNameValuePair(OAuth.REFRESH_TOKEN, this.refreshToken)); body.add(new BasicNameValuePair(OAuth.SCOPE, this.scope)); body.add(new BasicNameValuePair(OAuth.GRANT_TYPE, this.grantType.toString())); } }