package org.limewire.friend.impl.feature; import java.util.Arrays; import org.apache.commons.codec.binary.Base64; import org.limewire.friend.api.feature.AuthToken; import org.limewire.util.Objects; import org.limewire.util.StringUtils; /** * Default implementation for {@link AuthToken}. */ public class AuthTokenImpl implements AuthToken { private final byte[] token; public AuthTokenImpl(byte[] token) { this.token = Objects.nonNull(token, "token"); } public AuthTokenImpl(String base64Encoded) { this.token = Base64.decodeBase64(StringUtils.toAsciiBytes(base64Encoded)); } @Override public byte[] getToken() { return token; } @Override public boolean equals(Object obj) { if (obj instanceof AuthToken) { return Arrays.equals(token, ((AuthToken)obj).getToken()); } return false; } @Override public int hashCode() { return Arrays.hashCode(token); } @Override public String getBase64() { return StringUtils.getASCIIString(Base64.encodeBase64(token)); } @Override public String toString() { return getBase64(); } }