com.yahoo.net.UrlToken Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of vespajlib Show documentation
Show all versions of vespajlib Show documentation
Library for use in Java components of Vespa. Shared code which do
not fit anywhere else.
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.net;
/**
* @author Simon Thoresen Hult
*/
public class UrlToken {
public enum Type {
SCHEME,
USERINFO,
PASSWORD,
HOST,
PORT,
PATH,
QUERY,
FRAGMENT
}
private final Type type;
private final int offset;
private final String orig;
private final String term;
public UrlToken(Type type, int offset, String orig, String term) {
if (type == null) {
throw new NullPointerException();
}
this.type = type;
this.offset = offset;
this.orig = orig;
this.term = term;
}
public Type getType() {
return type;
}
public int getOffset() {
return offset;
}
public int getLength() {
return orig != null ? orig.length() : 0;
}
public String getOrig() {
return orig;
}
public String getTerm() {
return term;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof UrlToken)) {
return false;
}
UrlToken rhs = (UrlToken)obj;
if (offset != rhs.offset) {
return false;
}
if (orig != null ? !orig.equals(rhs.orig) : rhs.orig != null) {
return false;
}
if (term != null ? !term.equals(rhs.term) : rhs.term != null) {
return false;
}
if (type != rhs.type) {
return false;
}
return true;
}
@Override
public int hashCode() {
int result = type != null ? type.hashCode() : 0;
result = 31 * result + offset;
result = 31 * result + (orig != null ? orig.hashCode() : 0);
result = 31 * result + (term != null ? term.hashCode() : 0);
return result;
}
@Override
public String toString() {
StringBuilder ret = new StringBuilder("UrlToken(");
ret.append("type=").append(type).append(", ");
ret.append("offset=").append(offset).append(", ");
if (orig != null) {
ret.append("orig='").append(orig).append("', ");
}
if (term != null) {
ret.append("term='").append(term).append("', ");
}
ret.setLength(ret.length() - 2);
ret.append(")");
return ret.toString();
}
}