package com.easemob.server.example.jersey.vo; import org.glassfish.jersey.client.JerseyWebTarget; import com.fasterxml.jackson.databind.node.JsonNodeFactory; /** * Credential * * @author Lynch 2014-09-15 * */ public abstract class Credential { protected String grantType; protected String tokenKey1; protected String tokenKey2; protected JsonNodeFactory factory = new JsonNodeFactory(false); protected Token token; protected abstract JerseyWebTarget getTokenRequestTarget(); protected abstract GrantType getGrantType(); public static enum GrantType { CLIENT_CREDENTIALS } public Credential() { } public Credential(String tokenKey1, String tokenKey2) { this.tokenKey1 = tokenKey1; this.tokenKey2 = tokenKey2; } public Credential(Token token) { this.token = token; } public abstract Token getToken(); @Override public String toString() { return "Credentials [grantType=" + grantType + ", tokenKey1=" + tokenKey1 + ", tokenKey2=" + tokenKey2 + ", token=" + token + "]"; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((grantType == null) ? 0 : grantType.hashCode()); result = prime * result + ((token == null) ? 0 : token.hashCode()); result = prime * result + ((tokenKey1 == null) ? 0 : tokenKey1.hashCode()); result = prime * result + ((tokenKey2 == null) ? 0 : tokenKey2.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Credential other = (Credential) obj; if (grantType == null) { if (other.grantType != null) return false; } else if (!grantType.equals(other.grantType)) return false; if (token == null) { if (other.token != null) return false; } else if (!token.equals(other.token)) return false; if (tokenKey1 == null) { if (other.tokenKey1 != null) return false; } else if (!tokenKey1.equals(other.tokenKey1)) return false; if (tokenKey2 == null) { if (other.tokenKey2 != null) return false; } else if (!tokenKey2.equals(other.tokenKey2)) return false; return true; } }