package com.mediafire.sdk.token; import com.mediafire.sdk.api.responses.UserGetActionTokenResponse; /** * an ActionToken used to make certain types of API calls */ public class ActionToken { private final String tokenString; private final long expirationMillis; public ActionToken(String tokenString, long expirationMillis) { this.tokenString = tokenString; this.expirationMillis = expirationMillis; } /** * Gets the expiration time of the token * @return long expiration */ public long getExpiration() { return expirationMillis; } public boolean isExpired() { return System.currentTimeMillis() > expirationMillis; } public boolean isExpiringWithinMillis(long millis) { return System.currentTimeMillis() > expirationMillis - millis; } public String getToken() { return tokenString; } public static ActionToken makeActionTokenFromApiResponse(UserGetActionTokenResponse apiResponse, long expirationTime) { return new ActionToken(apiResponse.getActionToken(), expirationTime); } @Override public String toString() { return "ActionToken{" + "tokenString='" + tokenString + '\'' + ", expirationMillis=" + expirationMillis + '}'; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; ActionToken that = (ActionToken) o; return expirationMillis == that.expirationMillis && !(tokenString != null ? !tokenString.equals(that.tokenString) : that.tokenString != null); } @Override public int hashCode() { int result = tokenString != null ? tokenString.hashCode() : 0; result = 31 * result + (int) (expirationMillis ^ (expirationMillis >>> 32)); return result; } }