From 74466d731a29c823ab44f69aa50953b0b9e4bf01 Mon Sep 17 00:00:00 2001 From: Michael Peter Christen Date: Thu, 12 Dec 2013 11:50:48 +0100 Subject: [PATCH] use pre-compiled patterns in ymark --- htroot/api/ymarks/get_metadata.java | 3 +-- htroot/api/ymarks/get_treeview.java | 5 ++--- htroot/api/ymarks/get_xbel.java | 4 ++-- source/net/yacy/data/ymark/YMarkDMOZImporter.java | 2 +- source/net/yacy/data/ymark/YMarkTables.java | 2 +- source/net/yacy/data/ymark/YMarkUtil.java | 4 ++++ 6 files changed, 11 insertions(+), 9 deletions(-) diff --git a/htroot/api/ymarks/get_metadata.java b/htroot/api/ymarks/get_metadata.java index c161a1e1e..a44591902 100644 --- a/htroot/api/ymarks/get_metadata.java +++ b/htroot/api/ymarks/get_metadata.java @@ -2,7 +2,6 @@ import java.io.IOException; import java.net.MalformedURLException; import java.util.EnumMap; import java.util.Iterator; -import java.util.regex.Pattern; import net.yacy.cora.document.id.DigestURL; import net.yacy.cora.protocol.ClientIdentification; @@ -94,7 +93,7 @@ public class get_metadata { } public static int putTags(final String tagString, final String var) { - final String list[] = Pattern.compile(YMarkUtil.TAGS_SEPARATOR).split(tagString, 0); + final String list[] = YMarkUtil.TAGS_SEPARATOR_PATTERN.split(tagString, 0); int count = 0; for (final String element : list) { final String tag = element; diff --git a/htroot/api/ymarks/get_treeview.java b/htroot/api/ymarks/get_treeview.java index 300cc3a15..1d988ade7 100644 --- a/htroot/api/ymarks/get_treeview.java +++ b/htroot/api/ymarks/get_treeview.java @@ -4,7 +4,6 @@ import java.util.Date; import java.util.EnumMap; import java.util.Iterator; import java.util.TreeMap; -import java.util.regex.Pattern; import net.yacy.cora.date.ISO8601Formatter; import net.yacy.cora.document.encoding.UTF8; @@ -98,11 +97,11 @@ public class get_treeview { } catch (final IOException e) { ConcurrentLog.logException(e); } - int n = Pattern.compile(YMarkUtil.FOLDERS_SEPARATOR).split(root, 0).length; + int n = YMarkUtil.FOLDERS_SEPARATOR_PATTERN.split(root, 0).length; if (n == 0) n = 1; while (it.hasNext()) { final String folder = it.next(); - foldername = folder.split(YMarkUtil.FOLDERS_SEPARATOR); + foldername = YMarkUtil.FOLDERS_SEPARATOR_PATTERN.split(folder); if (foldername.length == n+1) { prop.put("folders_"+count+"_foldername", foldername[n]); prop.put("folders_"+count+"_expanded", "false"); diff --git a/htroot/api/ymarks/get_xbel.java b/htroot/api/ymarks/get_xbel.java index c47809546..cb4c6c619 100644 --- a/htroot/api/ymarks/get_xbel.java +++ b/htroot/api/ymarks/get_xbel.java @@ -52,7 +52,7 @@ public class get_xbel { root = ""; } - final int root_depth = root.split(YMarkUtil.FOLDERS_SEPARATOR).length - 1; + final int root_depth = YMarkUtil.FOLDERS_SEPARATOR_PATTERN.split(root).length - 1; // Log.logInfo(YMarkTables.BOOKMARKS_LOG, "root: "+root+" root_depth: "+root_depth); Iterator fit = null; Iterator bit = null; @@ -67,7 +67,7 @@ public class get_xbel { while (fit.hasNext()) { final String folder = fit.next(); - foldername = folder.split(YMarkUtil.FOLDERS_SEPARATOR); + foldername = YMarkUtil.FOLDERS_SEPARATOR_PATTERN.split(folder); final int len = foldername.length -1; if(n > root_depth) { for (; len <= n; n--) { diff --git a/source/net/yacy/data/ymark/YMarkDMOZImporter.java b/source/net/yacy/data/ymark/YMarkDMOZImporter.java index 0180ee05b..c5117f914 100644 --- a/source/net/yacy/data/ymark/YMarkDMOZImporter.java +++ b/source/net/yacy/data/ymark/YMarkDMOZImporter.java @@ -60,7 +60,7 @@ public class YMarkDMOZImporter extends YMarkImporter { } public void setDepth(int d) { - this.depth = d + this.targetFolder.split(YMarkUtil.FOLDERS_SEPARATOR).length-1; + this.depth = d + YMarkUtil.FOLDERS_SEPARATOR_PATTERN.split(this.targetFolder).length-1; } public class DMOZParser extends DefaultHandler { diff --git a/source/net/yacy/data/ymark/YMarkTables.java b/source/net/yacy/data/ymark/YMarkTables.java index 673c6ed7c..02a8f85f1 100644 --- a/source/net/yacy/data/ymark/YMarkTables.java +++ b/source/net/yacy/data/ymark/YMarkTables.java @@ -259,7 +259,7 @@ public class YMarkTables { while(bit.hasNext()) { bmk_row = bit.next(); if(bmk_row.containsKey(YMarkEntry.BOOKMARK.FOLDERS.key())) { - final String[] folderArray = (new String(bmk_row.get(YMarkEntry.BOOKMARK.FOLDERS.key()),"UTF8")).split(YMarkUtil.TAGS_SEPARATOR); + final String[] folderArray = YMarkUtil.TAGS_SEPARATOR_PATTERN.split(new String(bmk_row.get(YMarkEntry.BOOKMARK.FOLDERS.key()),"UTF8")); for (final String folder : folderArray) { if(folder.length() > root.length() && folder.substring(0, root.length()+1).equals(r)) { if(!folders.contains(folder)) { diff --git a/source/net/yacy/data/ymark/YMarkUtil.java b/source/net/yacy/data/ymark/YMarkUtil.java index e9a19f7eb..b7c8b0d59 100644 --- a/source/net/yacy/data/ymark/YMarkUtil.java +++ b/source/net/yacy/data/ymark/YMarkUtil.java @@ -29,6 +29,7 @@ package net.yacy.data.ymark; import java.net.MalformedURLException; import java.util.HashSet; import java.util.Iterator; +import java.util.regex.Pattern; import net.yacy.cora.document.encoding.UTF8; import net.yacy.cora.document.id.DigestURL; @@ -40,6 +41,9 @@ public class YMarkUtil { public final static String SPACE = " "; public final static String EMPTY_STRING = new String(); + public final static Pattern TAGS_SEPARATOR_PATTERN = Pattern.compile(TAGS_SEPARATOR); + public final static Pattern FOLDERS_SEPARATOR_PATTERN = Pattern.compile(FOLDERS_SEPARATOR); + /** * conveniance function to generate url hashes for YMark bookmarks * @param url a string representation of a valid url