package org.restlet.ext.oauth; /** * OAuthアクセストークンを発行する相手を識別するデータ.<br> * - アプリ(Android)の場合は、パッケージ名を入れる。<br> * - アプリ(Web)の場合は、パッケージ名にURLを入れる。<br> * - デバイスプラグインの場合は、パッケージ名とサービスIDを入れる。<br> */ public class PackageInfoOAuth { /** パッケージ名. */ private String mPackageName; /** サービスID(アプリの場合はnullを設定する). */ private String mServiceId; /** * コンストラクタ(アプリを指定する場合). * @param packageName パッケージ名. */ public PackageInfoOAuth(final String packageName) { mPackageName = packageName; mServiceId = null; } /** * コンストラクタ(デバイスプラグインを指定する場合). * @param packageName パッケージ名. * @param serviceId サービスID. */ public PackageInfoOAuth(final String packageName, final String serviceId) { mPackageName = packageName; mServiceId = serviceId; } /** * パッケージ名取得. * @return パッケージ名 */ public String getPackageName() { return mPackageName; } /** * サービスID取得. * @return サービスID */ public String getServiceId() { return mServiceId; } /** * オブジェクト比較. * @param o 比較対象のオブジェクト * @return true: 同じ値を持つオブジェクトである。 / false: 異なる値を持っている。 */ @Override public boolean equals(final Object o) { PackageInfoOAuth cmp1 = this; PackageInfoOAuth cmp2 = (PackageInfoOAuth) o; boolean isEqualPackageName = false; if (cmp1.getPackageName() == null && cmp2.getPackageName() == null) { /* 両方null */ isEqualPackageName = true; } else if (cmp1.getPackageName() != null && cmp2.getPackageName() != null /* 両方同じ文字列 */ && cmp1.getPackageName().equals(cmp2.getPackageName())) { isEqualPackageName = true; } boolean isEqualServiceId = false; if (cmp1.getServiceId() == null && cmp2.getServiceId() == null) { /* 両方null */ isEqualServiceId = true; } else if (cmp1.getServiceId() != null && cmp2.getServiceId() != null /* 両方同じ文字列 */ && cmp1.getServiceId().equals(cmp2.getServiceId())) { isEqualServiceId = true; } if (isEqualPackageName && isEqualServiceId) { return true; } return false; } /** * ハッシュ値を返す. * @return ハッシュ値 */ @Override public int hashCode() { String str = ""; if (getPackageName() != null) { str += getPackageName(); } else { str += "(null)"; } if (getServiceId() != null) { str += getServiceId(); } else { str += "(null)"; } int hashCode = str.hashCode(); return hashCode; } }