001 // License: GPL. For details, see LICENSE file. 002 package org.openstreetmap.josm.data.oauth; 003 004 import oauth.signpost.OAuthConsumer; 005 006 import org.openstreetmap.josm.tools.CheckParameterUtil; 007 008 public class OAuthToken { 009 010 /** 011 * Creates an OAuthToken from the token currently managed by the {@link OAuthConsumer}. 012 * 013 * @param consumer the consumer 014 * @return the token 015 */ 016 static public OAuthToken createToken(OAuthConsumer consumer) { 017 return new OAuthToken(consumer.getToken(), consumer.getTokenSecret()); 018 } 019 020 private String key; 021 private String secret; 022 023 /** 024 * Creates a new token 025 * 026 * @param key the token key 027 * @param secret the token secret 028 */ 029 public OAuthToken(String key, String secret) { 030 this.key = key; 031 this.secret = secret; 032 } 033 034 /** 035 * Creates a clone of another token 036 * 037 * @param other the other token. Must not be null. 038 * @throws IllegalArgumentException thrown if other is null 039 */ 040 public OAuthToken(OAuthToken other) throws IllegalArgumentException { 041 CheckParameterUtil.ensureParameterNotNull(other, "other"); 042 this.key = other.key; 043 this.secret = other.secret; 044 } 045 046 /** 047 * Replies the token key 048 * 049 * @return the token key 050 */ 051 public String getKey() { 052 return key; 053 } 054 055 /** 056 * Replies the token secret 057 * 058 * @return the token secret 059 */ 060 public String getSecret() { 061 return secret; 062 } 063 064 @Override 065 public int hashCode() { 066 final int prime = 31; 067 int result = 1; 068 result = prime * result + ((key == null) ? 0 : key.hashCode()); 069 result = prime * result + ((secret == null) ? 0 : secret.hashCode()); 070 return result; 071 } 072 073 @Override 074 public boolean equals(Object obj) { 075 if (this == obj) 076 return true; 077 if (obj == null) 078 return false; 079 if (getClass() != obj.getClass()) 080 return false; 081 OAuthToken other = (OAuthToken) obj; 082 if (key == null) { 083 if (other.key != null) 084 return false; 085 } else if (!key.equals(other.key)) 086 return false; 087 if (secret == null) { 088 if (other.secret != null) 089 return false; 090 } else if (!secret.equals(other.secret)) 091 return false; 092 return true; 093 } 094 }