mirror of
https://github.com/yacy/yacy_search_server.git
synced 2024-09-21 00:00:13 +02:00
a0e891c63d
- extended the OAI-PMH test applet and integrated it into the menu. Does still not import OAI-PMH records, but shows that it is able to read and parse this data - some redesign in ZURL storage: refactoring of access methods, better concurrency, less synchronization - added a limitation to the LURL metadata database table cache to 20 million entries: this cache was until now not limited and only limited by the available RAM which may have caused a memory-leak-like behavior. git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@6440 6c8d7289-2bf4-0310-a012-ef5d649a1542
83 lines
2.6 KiB
Java
83 lines
2.6 KiB
Java
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();
|
|
}
|
|
|
|
}
|