package models;
import java.io.IOException;
import java.net.URL;
import javax.persistence.MappedSuperclass;
import javax.persistence.Transient;
import play.Logger;
import play.db.ebean.Model;
import com.fasterxml.jackson.annotation.JsonIgnore;
@MappedSuperclass
abstract class UrlModel extends Model {
private static final long serialVersionUID = 2497175981252269093L;
@JsonIgnore
@Transient
protected final static String HTTP = "http://";
@JsonIgnore
@Transient
protected final static String HTTPS = "https://";
@JsonIgnore
@Transient
protected final static String WWW = "www.";
@JsonIgnore
@Transient
protected final static String END_STR = "/";
public static String getDomainFromUrl(String url) throws IOException {
return new URL(url).getHost().replace(WWW, "");
}
public static String normalizeUrl(String url) {
return normalizeUrl(url, true);
}
public static String normalizeUrlNoSlash(String url) {
return normalizeUrl(url, false);
}
private static String normalizeUrl(String url, boolean slash) {
if (url != null && url.length() > 0) {
//if (!url.contains(WWW) && !url.contains(HTTP) && !url.contains(HTTPS)) {
// url = WWW + url;
//}
if (!url.contains(HTTP)) {
if (!url.contains(HTTPS)) {
url = HTTP + url;
}
}
if (slash && !url.endsWith(END_STR)) {
url = url + END_STR;
}
}
Logger.debug("normalized URL: " + url);
return url;
}
}