RSSMessages do not need a concurrent hash map -> removed overhead

pull/1/head
Michael Peter Christen 13 years ago
parent 07ca7e4dd1
commit f8a0cf6d7c

@ -28,10 +28,10 @@ import java.text.ParseException;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import net.yacy.cora.date.GenericFormatter;
import net.yacy.cora.date.ISO8601Formatter;
@ -81,6 +81,7 @@ public class RSSMessage implements Hit, Comparable<RSSMessage>, Comparator<RSSMe
return this.keys;
}
@Override
public String toString() {
return this.keys.iterator().next();
}
@ -99,7 +100,7 @@ public class RSSMessage implements Hit, Comparable<RSSMessage>, Comparator<RSSMe
private final Map<String, String> map;
public RSSMessage(final String title, final String description, final String link) {
this.map = new ConcurrentHashMap<String, String>();
this.map = new HashMap<String, String>();
this.map.put("title", title);
this.map.put("description", description);
this.map.put("link", link);
@ -108,7 +109,7 @@ public class RSSMessage implements Hit, Comparable<RSSMessage>, Comparator<RSSMe
}
public RSSMessage(final String title, final String description, final DigestURI link) {
this.map = new ConcurrentHashMap<String, String>();
this.map = new HashMap<String, String>();
this.map.put("title", title);
this.map.put("description", description);
this.map.put("link", link.toNormalform(true, false));
@ -117,7 +118,7 @@ public class RSSMessage implements Hit, Comparable<RSSMessage>, Comparator<RSSMe
}
public RSSMessage() {
this.map = new ConcurrentHashMap<String, String>();
this.map = new HashMap<String, String>();
}
public void setValue(final String name, final String value) {
@ -129,10 +130,12 @@ public class RSSMessage implements Hit, Comparable<RSSMessage>, Comparator<RSSMe
}
}
@Override
public String getTitle() {
return Token.title.valueFrom(this.map, "");
}
@Override
public String getLink() {
return Token.link.valueFrom(this.map, "");
}
@ -158,22 +161,27 @@ public class RSSMessage implements Hit, Comparable<RSSMessage>, Comparator<RSSMe
return o1.compareTo(o2);
}
@Override
public String getDescription() {
return Token.description.valueFrom(this.map, "");
}
@Override
public String getAuthor() {
return Token.author.valueFrom(this.map, "");
}
@Override
public String getCopyright() {
return Token.copyright.valueFrom(this.map, "");
}
@Override
public String getCategory() {
return Token.category.valueFrom(this.map, "");
}
@Override
public String[] getSubject() {
final String subject = Token.subject.valueFrom(this.map, "");
if (subject.indexOf(',') >= 0) return subject.split(",");
@ -181,14 +189,17 @@ public class RSSMessage implements Hit, Comparable<RSSMessage>, Comparator<RSSMe
return subject.split(" ");
}
@Override
public String getReferrer() {
return Token.referrer.valueFrom(this.map, "");
}
@Override
public String getLanguage() {
return Token.language.valueFrom(this.map, "");
}
@Override
public Date getPubDate() {
final String dateString = Token.pubDate.valueFrom(this.map, "");
Date date;
@ -204,6 +215,7 @@ public class RSSMessage implements Hit, Comparable<RSSMessage>, Comparator<RSSMe
return date;
}
@Override
public String getGuid() {
return Token.guid.valueFrom(this.map, "");
}
@ -212,10 +224,12 @@ public class RSSMessage implements Hit, Comparable<RSSMessage>, Comparator<RSSMe
return Token.ttl.valueFrom(this.map, "");
}
@Override
public String getDocs() {
return Token.docs.valueFrom(this.map, "");
}
@Override
public long getSize() {
final String size = Token.size.valueFrom(this.map, "-1");
return (size == null || size.length() == 0) ? -1 : Long.parseLong(size);
@ -227,10 +241,12 @@ public class RSSMessage implements Hit, Comparable<RSSMessage>, Comparator<RSSMe
return sb.toString();
}
@Override
public float getLon() {
return Float.parseFloat(Token.lon.valueFrom(this.map, "0.0"));
}
@Override
public float getLat() {
return Float.parseFloat(Token.lat.valueFrom(this.map, "0.0"));
}
@ -240,18 +256,22 @@ public class RSSMessage implements Hit, Comparable<RSSMessage>, Comparator<RSSMe
return this.map.toString();
}
@Override
public void setAuthor(final String author) {
setValue("author", author);
}
@Override
public void setCategory(final String category) {
setValue("category", category);
}
@Override
public void setCopyright(final String copyright) {
setValue("copyright", copyright);
}
@Override
public void setSubject(final String[] tags) {
final StringBuilder sb = new StringBuilder(tags.length * 10);
for (final String tag: tags) sb.append(tag).append(',');
@ -259,38 +279,47 @@ public class RSSMessage implements Hit, Comparable<RSSMessage>, Comparator<RSSMe
setValue("subject", sb.toString());
}
@Override
public void setDescription(final String description) {
setValue("description", description);
}
@Override
public void setDocs(final String docs) {
setValue("docs", docs);
}
@Override
public void setGuid(final String guid) {
setValue("guid", guid);
}
@Override
public void setLanguage(final String language) {
setValue("language", language);
}
@Override
public void setLink(final String link) {
setValue("link", link);
}
@Override
public void setPubDate(final Date pubdate) {
setValue("pubDate", ISO8601Formatter.FORMATTER.format(pubdate));
}
@Override
public void setReferrer(final String referrer) {
setValue("referrer", referrer);
}
@Override
public void setSize(final long size) {
setValue("size", Long.toString(size));
}
@Override
public void setTitle(final String title) {
setValue("title", title);
}

Loading…
Cancel
Save