/**
* Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
*
* You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
* copy, modify, and distribute this software in source code or binary form for use
* in connection with the web services and APIs provided by Facebook.
*
* As with any software that integrates with the Facebook platform, your use of
* this software is subject to the Facebook Developer Principles and Policies
* [http://developers.facebook.com/policy/]. This copyright notice shall be
* included in all copies or substantial portions of the software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package com.facebook.appevents;
import com.facebook.AccessToken;
import com.facebook.FacebookSdk;
import com.facebook.internal.Utility;
import java.io.Serializable;
class AccessTokenAppIdPair implements Serializable {
private static final long serialVersionUID = 1L;
private final String accessTokenString;
private final String applicationId;
public AccessTokenAppIdPair(AccessToken accessToken) {
this(accessToken.getToken(), FacebookSdk.getApplicationId());
}
public AccessTokenAppIdPair(String accessTokenString, String applicationId) {
this.accessTokenString = Utility.isNullOrEmpty(accessTokenString)
? null
: accessTokenString;
this.applicationId = applicationId;
}
public String getAccessTokenString() {
return accessTokenString;
}
public String getApplicationId() {
return applicationId;
}
@Override
public int hashCode() {
return (accessTokenString == null ? 0 : accessTokenString.hashCode()) ^
(applicationId == null ? 0 : applicationId.hashCode());
}
@Override
public boolean equals(Object o) {
if (!(o instanceof AccessTokenAppIdPair)) {
return false;
}
AccessTokenAppIdPair p = (AccessTokenAppIdPair) o;
return Utility.areObjectsEqual(p.accessTokenString, accessTokenString) &&
Utility.areObjectsEqual(p.applicationId, applicationId);
}
static class SerializationProxyV1 implements Serializable {
private static final long serialVersionUID = -2488473066578201069L;
private final String accessTokenString;
private final String appId;
private SerializationProxyV1(String accessTokenString, String appId) {
this.accessTokenString = accessTokenString;
this.appId = appId;
}
private Object readResolve() {
return new AccessTokenAppIdPair(accessTokenString, appId);
}
}
private Object writeReplace() {
return new SerializationProxyV1(accessTokenString, applicationId);
}
}