/**
* Most of the code in the Qalingo project is copyrighted Hoteia and licensed
* under the Apache License Version 2.0 (release version 0.8.0)
* http://www.apache.org/licenses/LICENSE-2.0
*
* Copyright (c) Hoteia, 2012-2014
* http://www.hoteia.com - http://twitter.com/hoteia - contact@hoteia.com
*
*/
package org.hoteia.qalingo.core.service.openid;
import java.text.SimpleDateFormat;
/**
*
*/
public final class Endpoint {
static final String DEFAULT_ALIAS = "ext1";
private final String url;
private final String alias;
private final long expired;
public Endpoint(String url, String alias, long maxAgeInMilliSeconds) {
if (url == null){
throw new NullPointerException("Url is null.");
}
this.url = url;
this.alias = alias;
this.expired = System.currentTimeMillis() + maxAgeInMilliSeconds;
}
public String getUrl() {
return url;
}
public String getAlias() {
return alias;
}
public boolean isExpired() {
return System.currentTimeMillis() >= expired;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((alias == null) ? 0 : alias.hashCode());
result = prime * result + (int) (expired ^ (expired >>> 32));
result = prime * result + ((url == null) ? 0 : url.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;
Endpoint other = (Endpoint) obj;
if (alias == null) {
if (other.alias != null)
return false;
} else if (!alias.equals(other.alias))
return false;
if (expired != other.expired)
return false;
if (url == null) {
if (other.url != null)
return false;
} else if (!url.equals(other.url))
return false;
return true;
}
@Override
public String toString() {
return "Endpoint [url=" + url + ", alias=" + alias + ", expired=" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(expired) + "]";
}
}