You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.6 KiB
83 lines
2.6 KiB
15 years ago
|
package net.yacy.document.importer;
|
||
|
|
||
|
import java.text.Collator;
|
||
|
import java.text.ParseException;
|
||
|
import java.util.Date;
|
||
|
import java.util.Locale;
|
||
|
import java.util.TreeMap;
|
||
|
|
||
|
import net.yacy.kelondro.util.DateFormatter;
|
||
|
|
||
|
public class ResumptionToken extends TreeMap<String, String> {
|
||
|
|
||
|
private static final long serialVersionUID = -8389462290545629792L;
|
||
|
|
||
|
// use a collator to relax when distinguishing between lowercase und uppercase letters
|
||
|
private static final Collator insensitiveCollator = Collator.getInstance(Locale.US);
|
||
|
static {
|
||
|
insensitiveCollator.setStrength(Collator.SECONDARY);
|
||
|
insensitiveCollator.setDecomposition(Collator.NO_DECOMPOSITION);
|
||
|
}
|
||
|
|
||
|
public ResumptionToken(
|
||
|
Date expirationDate,
|
||
|
int completeListSize,
|
||
|
int cursor,
|
||
|
int token
|
||
|
) {
|
||
|
super((Collator) insensitiveCollator.clone());
|
||
|
this.put("expirationDate", DateFormatter.formatISO8601(expirationDate));
|
||
|
this.put("completeListSize", Integer.toString(completeListSize));
|
||
|
this.put("cursor", Integer.toString(cursor));
|
||
|
this.put("token", Integer.toString(token));
|
||
|
}
|
||
|
|
||
|
public ResumptionToken(
|
||
|
String expirationDate,
|
||
|
int completeListSize,
|
||
|
int cursor,
|
||
|
int token
|
||
|
) {
|
||
|
super((Collator) insensitiveCollator.clone());
|
||
|
this.put("expirationDate", expirationDate);
|
||
|
this.put("completeListSize", Integer.toString(completeListSize));
|
||
|
this.put("cursor", Integer.toString(cursor));
|
||
|
this.put("token", Integer.toString(token));
|
||
|
}
|
||
|
|
||
|
public Date getExpirationDate() {
|
||
|
String d = this.get("expirationDate");
|
||
|
if (d == null) return null;
|
||
|
try {
|
||
|
return DateFormatter.parseISO8601(d);
|
||
|
} catch (ParseException e) {
|
||
|
e.printStackTrace();
|
||
|
return new Date();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public int getCompleteListSize() {
|
||
|
String t = this.get("completeListSize");
|
||
|
if (t == null) return 0;
|
||
|
return Integer.parseInt(t);
|
||
|
}
|
||
|
|
||
|
public int getCursor() {
|
||
|
String t = this.get("cursor");
|
||
|
if (t == null) return 0;
|
||
|
return Integer.parseInt(t);
|
||
|
}
|
||
|
|
||
|
public int getToken() {
|
||
|
String t = this.get("token");
|
||
|
if (t == null) return 0;
|
||
|
return Integer.parseInt(t);
|
||
|
}
|
||
|
|
||
|
public String toString() {
|
||
|
return "expirationDate=" + DateFormatter.formatISO8601(this.getExpirationDate()) + ", completeListSize=" + getCompleteListSize() +
|
||
|
", cursor=" + this.getCursor() + ", token=" + this.getToken();
|
||
|
}
|
||
|
|
||
|
}
|