Skip to content

Commit

Permalink
add-on to latest commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Orbiter committed May 21, 2012
1 parent cf47d94 commit c15fcde
Show file tree
Hide file tree
Showing 18 changed files with 91 additions and 46 deletions.
2 changes: 1 addition & 1 deletion htroot/QuickCrawlLink_p.java
Expand Up @@ -36,8 +36,8 @@
import net.yacy.cora.protocol.HeaderFramework;
import net.yacy.cora.protocol.RequestHeader;
import net.yacy.cora.services.federated.yacy.CacheStrategy;
import net.yacy.cora.util.NumberTools;
import net.yacy.kelondro.data.meta.DigestURI;
import net.yacy.kelondro.util.NumberTools;
import net.yacy.search.Switchboard;
import net.yacy.search.index.Segment;
import net.yacy.search.index.Segments;
Expand Down
2 changes: 1 addition & 1 deletion htroot/YaCySearchPluginFF.java
Expand Up @@ -29,7 +29,7 @@

import net.yacy.cora.protocol.HeaderFramework;
import net.yacy.cora.protocol.RequestHeader;
import net.yacy.kelondro.util.NumberTools;
import net.yacy.cora.util.NumberTools;
import net.yacy.search.Switchboard;
import de.anomic.server.serverObjects;
import de.anomic.server.serverSwitch;
Expand Down
2 changes: 1 addition & 1 deletion htroot/autoconfig.java
Expand Up @@ -29,7 +29,7 @@

import net.yacy.cora.protocol.HeaderFramework;
import net.yacy.cora.protocol.RequestHeader;
import net.yacy.kelondro.util.NumberTools;
import net.yacy.cora.util.NumberTools;
import net.yacy.search.SwitchboardConstants;
import de.anomic.server.serverObjects;
import de.anomic.server.serverSwitch;
Expand Down
2 changes: 1 addition & 1 deletion source/de/anomic/crawler/retrieval/Response.java
Expand Up @@ -36,11 +36,11 @@
import net.yacy.cora.protocol.HeaderFramework;
import net.yacy.cora.protocol.RequestHeader;
import net.yacy.cora.protocol.ResponseHeader;
import net.yacy.cora.util.NumberTools;
import net.yacy.document.Document;
import net.yacy.document.Parser;
import net.yacy.document.TextParser;
import net.yacy.kelondro.data.meta.DigestURI;
import net.yacy.kelondro.util.NumberTools;
import de.anomic.crawler.CrawlProfile;
import de.anomic.crawler.ResultURLs.EventOrigin;

Expand Down
3 changes: 2 additions & 1 deletion source/de/anomic/http/server/HTTPDFileHandler.java
Expand Up @@ -97,6 +97,7 @@ public static java.util.Hashtable respond(java.util.HashMap, serverSwitch)
import net.yacy.cora.protocol.HeaderFramework;
import net.yacy.cora.protocol.RequestHeader;
import net.yacy.cora.protocol.ResponseHeader;
import net.yacy.cora.util.NumberTools;
import net.yacy.document.parser.htmlParser;
import net.yacy.document.parser.html.ContentScraper;
import net.yacy.document.parser.html.ScraperInputStream;
Expand Down Expand Up @@ -1155,7 +1156,7 @@ && matchesSuffix(path, switchboard.getConfig("cgi.suffixes", null)) // "right" f
final String rangesVal = rangeHeaderVal.substring("bytes=".length());
final String[] ranges = rangesVal.split(",");
if ((ranges.length == 1)&&(ranges[0].endsWith("-"))) {
rangeStartOffset = Integer.parseInt(ranges[0].substring(0,ranges[0].length()-1));
rangeStartOffset = NumberTools.parseIntDecSubstring(ranges[0], 0, ranges[0].length() - 1);
statusCode = 206;
header.put(HeaderFramework.CONTENT_RANGE, "bytes " + rangeStartOffset + "-" + (targetFile.length()-1) + "/" + targetFile.length());
}
Expand Down
2 changes: 1 addition & 1 deletion source/de/anomic/http/server/HTTPDProxyHandler.java
Expand Up @@ -77,14 +77,14 @@
import net.yacy.cora.protocol.ResponseHeader;
import net.yacy.cora.protocol.http.HTTPClient;
import net.yacy.cora.protocol.http.ProxySettings;
import net.yacy.cora.util.NumberTools;
import net.yacy.document.TextParser;
import net.yacy.document.parser.html.ContentTransformer;
import net.yacy.document.parser.html.Transformer;
import net.yacy.kelondro.data.meta.DigestURI;
import net.yacy.kelondro.io.ByteCountOutputStream;
import net.yacy.kelondro.logging.Log;
import net.yacy.kelondro.util.FileUtils;
import net.yacy.kelondro.util.NumberTools;
import net.yacy.repository.Blacklist;
import net.yacy.search.Switchboard;
import net.yacy.search.SwitchboardConstants;
Expand Down
4 changes: 2 additions & 2 deletions source/de/anomic/http/server/HTTPDemon.java
Expand Up @@ -58,14 +58,14 @@
import net.yacy.cora.protocol.HeaderFramework;
import net.yacy.cora.protocol.RequestHeader;
import net.yacy.cora.protocol.ResponseHeader;
import net.yacy.cora.util.NumberTools;
import net.yacy.document.parser.html.CharacterCoding;
import net.yacy.kelondro.data.meta.DigestURI;
import net.yacy.kelondro.logging.Log;
import net.yacy.kelondro.order.Base64Order;
import net.yacy.kelondro.util.ByteBuffer;
import net.yacy.kelondro.util.FileUtils;
import net.yacy.kelondro.util.MemoryControl;
import net.yacy.kelondro.util.NumberTools;
import net.yacy.search.Switchboard;

import org.apache.commons.fileupload.FileItem;
Expand Down Expand Up @@ -796,7 +796,7 @@ public static String decodeHtmlEntities(String s) {
for (int i = 0, len = s.length(); i < len; i++) {
if (s.charAt(i) == '&' && (end = s.indexOf(';', i + 1)) > i) {
if (s.charAt(i + 1) == '#') { // &#1234; symbols
b.write(Integer.parseInt(s.substring(i + 2, end)));
b.write(NumberTools.parseIntDecSubstring(s, i + 2, end));
i += end - i;
} else { // 'named' smybols
if (log.isFine()) log.logFine("discovered yet unimplemented HTML entity '" + s.substring(i, end + 1) + "'");
Expand Down
4 changes: 2 additions & 2 deletions source/net/yacy/cora/date/GenericFormatter.java
Expand Up @@ -31,7 +31,7 @@
import java.util.Date;
import java.util.Locale;

import net.yacy.kelondro.util.NumberTools;
import net.yacy.cora.util.NumberTools;

public class GenericFormatter extends AbstractFormatter implements DateFormatter {

Expand Down Expand Up @@ -148,7 +148,7 @@ private static long UTCDiff(final String diffString) {
if (diffString.length() > 0 && diffString.charAt(0) == '+') ahead = true;
else if (diffString.length() > 0 && diffString.charAt(0) == '-') ahead = false;
else throw new IllegalArgumentException("UTC String malformed (wrong sign):" + diffString);
final long oh = Long.parseLong(diffString.substring(1, 3));
final long oh = NumberTools.parseLongDecSubstring(diffString, 1, 3);
final long om = NumberTools.parseLongDecSubstring(diffString, 3);
return ((ahead) ? (long) 1 : (long) -1) * (oh * AbstractFormatter.hourMillis + om * AbstractFormatter.minuteMillis);
}
Expand Down
2 changes: 1 addition & 1 deletion source/net/yacy/cora/protocol/HeaderFramework.java
Expand Up @@ -42,7 +42,7 @@
import net.yacy.cora.document.ASCII;
import net.yacy.cora.document.MultiProtocolURI;
import net.yacy.cora.document.UTF8;
import net.yacy.kelondro.util.NumberTools;
import net.yacy.cora.util.NumberTools;


/**
Expand Down
Expand Up @@ -19,7 +19,9 @@
*/


package net.yacy.kelondro.util;
package net.yacy.cora.util;

import java.util.Random;

public class NumberTools {

Expand All @@ -31,14 +33,18 @@ public class NumberTools {
* @return the number
* @throws NumberFormatException
*/
public static final long parseLongDecSubstring(String s) throws NumberFormatException {
if (s == null) throw new NumberFormatException(s);
return parseLongDecSubstring(s, 0, s.length());
}

public static final long parseLongDecSubstring(String s, int startPos) throws NumberFormatException {
if (s == null) {
throw new NumberFormatException("null");
}
final int len = s.length();
if (len <= startPos) {
throw new NumberFormatException(s);
}
if (s == null) throw new NumberFormatException(s);
return parseLongDecSubstring(s, startPos, s.length());
}

public static final long parseLongDecSubstring(String s, int startPos, final int endPos) throws NumberFormatException {
if (s == null || endPos > s.length() || endPos <= startPos) throw new NumberFormatException(s);

long result = 0;
boolean negative = false;
Expand All @@ -54,15 +60,14 @@ public static final long parseLongDecSubstring(String s, int startPos) throws Nu
negative = true;
limit = Long.MIN_VALUE;
} else if (firstChar != '+') throw new NumberFormatException(s);

if (len == 1) throw new NumberFormatException(s);
i++;
if (endPos == i) throw new NumberFormatException(s);
}
multmin = limit / 10;
while (i < len) {
while (i < endPos) {
c = s.charAt(i++);
if (c == ' ') break;
digit = c - 48;
digit = c - '0';
if (digit < 0 || digit > 9 || result < multmin) throw new NumberFormatException(s);
result *= 10;
if (result < limit + digit) throw new NumberFormatException(s);
Expand All @@ -71,15 +76,18 @@ public static final long parseLongDecSubstring(String s, int startPos) throws Nu
return negative ? result : -result;
}

public static final int parseIntDecSubstring(String s) throws NumberFormatException {
if (s == null) throw new NumberFormatException(s);
return parseIntDecSubstring(s, 0, s.length());
}

public static final int parseIntDecSubstring(String s, int startPos) throws NumberFormatException {
if (s == null) {
throw new NumberFormatException("null");
}
if (s == null) throw new NumberFormatException(s);
return parseIntDecSubstring(s, startPos, s.length());
}

final int len = s.length();
if (len <= startPos) {
throw new NumberFormatException(s);
}
public static final int parseIntDecSubstring(String s, int startPos, final int endPos) throws NumberFormatException {
if (s == null || endPos > s.length() || endPos <= startPos) throw new NumberFormatException(s);

int result = 0;
boolean negative = false;
Expand All @@ -95,17 +103,17 @@ public static final int parseIntDecSubstring(String s, int startPos) throws Numb
negative = true;
limit = Integer.MIN_VALUE;
} else if (firstChar != '+') throw new NumberFormatException(s);

if (len == 1) throw new NumberFormatException(s);
i++;
if (endPos == i) throw new NumberFormatException(s);
}
multmin = limit / 10;
while (i < len) {
while (i < endPos) {
c = s.charAt(i++);
if (c == ' ') break;
digit = c - 48;
digit = c - '0';
if (digit < 0 || digit > 9 || result < multmin) throw new NumberFormatException(s);
result *= 10;
//result = (result << 3) + (result << 1);
if (result < limit + digit) throw new NumberFormatException(s);
result -= digit;
}
Expand All @@ -114,5 +122,37 @@ public static final int parseIntDecSubstring(String s, int startPos) throws Numb

public static void main(String[] args) {
System.out.println("the number is " + parseLongDecSubstring("number=78 ", 7));
System.out.println("the number is " + parseIntDecSubstring("number=78x ", 7, 9));
Random r = new Random(1);
String[] s = new String[1000000];
for (int i = 0; i < s.length; i++) s[i] = "abc " + Integer.toString(r.nextInt()) + " ";
long d = 0;
long t0 = System.currentTimeMillis();
for (String element : s) {
d += Integer.parseInt(element.substring(4).trim());
}
System.out.println("java: " + d + " - " + (System.currentTimeMillis() - t0) + " millis");
d = 0;
t0 = System.currentTimeMillis();
for (String element : s) {
d += parseIntDecSubstring(element, 4);
}
System.out.println("cora: " + d + " - " + (System.currentTimeMillis() - t0) + " millis");

r = new Random(1);
for (int i = 0; i < s.length; i++) s[i] = Integer.toString(r.nextInt());

d = 0;
t0 = System.currentTimeMillis();
for (String element : s) {
d += Integer.parseInt(element);
}
System.out.println("java: " + d + " - " + (System.currentTimeMillis() - t0) + " millis");
d = 0;
t0 = System.currentTimeMillis();
for (String element : s) {
d += parseIntDecSubstring(element);
}
System.out.println("cora: " + d + " - " + (System.currentTimeMillis() - t0) + " millis");
}
}
5 changes: 3 additions & 2 deletions source/net/yacy/document/importer/MediawikiImporter.java
Expand Up @@ -51,6 +51,7 @@
import java.util.zip.GZIPInputStream;

import net.yacy.cora.document.UTF8;
import net.yacy.cora.util.NumberTools;
import net.yacy.document.Document;
import net.yacy.document.Parser;
import net.yacy.document.TextParser;
Expand Down Expand Up @@ -611,13 +612,13 @@ public static wikisourcerecord find(final String title, final File f) throws IOE
p += 7;
int q = s.indexOf('"', p + 1);
if (q < 0) return null;
start = Long.parseLong(s.substring(p, q));
start = NumberTools.parseLongDecSubstring(s, p, q);
p = s.indexOf("length=\"", q);
if (p < 0) return null;
p += 8;
q = s.indexOf('"', p + 1);
if (q < 0) return null;
final int length = Integer.parseInt(s.substring(p, q));
final int length = NumberTools.parseIntDecSubstring(s, p, q);
//Log.logInfo("WIKITRANSLATION", "start = " + start + ", length = " + length);
return new wikisourcerecord(title, start, start + length);
}
Expand Down
3 changes: 2 additions & 1 deletion source/net/yacy/document/parser/html/ContentScraper.java
Expand Up @@ -47,6 +47,7 @@

import net.yacy.cora.document.MultiProtocolURI;
import net.yacy.cora.sorting.ClusteredScoreMap;
import net.yacy.cora.util.NumberTools;
import net.yacy.document.SentenceReader;
import net.yacy.document.parser.htmlParser;
import net.yacy.document.parser.html.Evaluation.Element;
Expand Down Expand Up @@ -780,7 +781,7 @@ public int getRefreshSeconds() {
try {
final int pos = s.indexOf(';');
if (pos < 0) return 9999;
final int i = Integer.parseInt(s.substring(0, pos));
final int i = NumberTools.parseIntDecSubstring(s, 0, pos);
return i;
} catch (final NumberFormatException e) {
return 9999;
Expand Down
4 changes: 2 additions & 2 deletions source/net/yacy/kelondro/index/Column.java
Expand Up @@ -29,7 +29,7 @@

import java.io.Serializable;

import net.yacy.kelondro.util.NumberTools;
import net.yacy.cora.util.NumberTools;
import net.yacy.kelondro.util.kelondroException;

public final class Column implements Cloneable, Serializable {
Expand Down Expand Up @@ -142,7 +142,7 @@ public Column(String celldef) {
celldef = "";
} else {
try {
this.cellwidth = Integer.parseInt(celldef.substring(p + 1, q));
this.cellwidth = NumberTools.parseIntDecSubstring(celldef, p + 1, q);
} catch (final NumberFormatException e) {
throw new kelondroException("kelondroColumn - cellwidth description wrong:" + celldef.substring(p + 1, q));
}
Expand Down
2 changes: 1 addition & 1 deletion source/net/yacy/kelondro/index/Row.java
Expand Up @@ -41,12 +41,12 @@
import net.yacy.cora.order.AbstractOrder;
import net.yacy.cora.order.ByteOrder;
import net.yacy.cora.order.Order;
import net.yacy.cora.util.NumberTools;
import net.yacy.kelondro.logging.Log;
import net.yacy.kelondro.order.Base64Order;
import net.yacy.kelondro.order.Bitfield;
import net.yacy.kelondro.order.NaturalOrder;
import net.yacy.kelondro.util.ByteBuffer;
import net.yacy.kelondro.util.NumberTools;
import net.yacy.kelondro.util.kelondroException;


Expand Down
2 changes: 1 addition & 1 deletion source/net/yacy/kelondro/table/Relations.java
Expand Up @@ -31,12 +31,12 @@
import java.util.HashMap;

import net.yacy.cora.document.UTF8;
import net.yacy.cora.util.NumberTools;
import net.yacy.kelondro.index.Index;
import net.yacy.kelondro.index.Row;
import net.yacy.kelondro.index.RowSpaceExceededException;
import net.yacy.kelondro.logging.Log;
import net.yacy.kelondro.order.NaturalOrder;
import net.yacy.kelondro.util.NumberTools;


public class Relations {
Expand Down
6 changes: 4 additions & 2 deletions source/net/yacy/kelondro/util/OS.java
Expand Up @@ -27,14 +27,16 @@
import java.io.InputStreamReader;
import java.lang.management.ManagementFactory;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Vector;

import net.yacy.cora.document.UTF8;
import net.yacy.cora.util.NumberTools;
import net.yacy.kelondro.logging.Log;
import de.anomic.server.serverCore;
import java.util.*;


public final class OS {
Expand Down Expand Up @@ -168,7 +170,7 @@ public static void deployScript(final File scriptFile, final String theScript) t
public static int getPID() {
final String pids = ManagementFactory.getRuntimeMXBean().getName();
final int p = pids.indexOf('@');
return p >= 0 ? Integer.parseInt(pids.substring(0, p)) : -1;
return p >= 0 ? NumberTools.parseIntDecSubstring(pids, 0, p) : -1;
}

public static void execAsynchronous(final File scriptFile) throws IOException {
Expand Down
2 changes: 1 addition & 1 deletion source/net/yacy/search/ranking/RankingProfile.java
Expand Up @@ -32,8 +32,8 @@

import net.yacy.cora.document.Classification;
import net.yacy.cora.document.Classification.ContentDomain;
import net.yacy.cora.util.NumberTools;
import net.yacy.kelondro.logging.Log;
import net.yacy.kelondro.util.NumberTools;

public class RankingProfile {

Expand Down

0 comments on commit c15fcde

Please sign in to comment.