From: <bra...@us...> - 2007-07-16 22:57:36
|
Revision: 1781 http://archive-access.svn.sourceforge.net/archive-access/?rev=1781&view=rev Author: bradtofel Date: 2007-07-16 15:57:38 -0700 (Mon, 16 Jul 2007) Log Message: ----------- REFACTOR: now HASA File instead of ISA File, to allow for empty constructor, and getters and setters for Spring. Modified Paths: -------------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/flatfile/FlatFile.java Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/flatfile/FlatFile.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/flatfile/FlatFile.java 2007-07-16 22:55:57 UTC (rev 1780) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/flatfile/FlatFile.java 2007-07-16 22:57:38 UTC (rev 1781) @@ -39,23 +39,46 @@ * @author brad * @version $Date$, $Revision$ */ -public class FlatFile extends File { +public class FlatFile { private static final long serialVersionUID = 6174187801001601557L; private long lastMatchOffset; + private File file = null; /** + * + */ + public FlatFile() { + + } + /** * @param parent * @param child */ public FlatFile(File parent, String child) { - super(parent, child); + file = new File(parent,child); } /** * @param path */ public FlatFile(String path) { - super(path); + file = new File(path); } + + /** + * @param path to set + */ + public void setPath(String path) { + file = new File(path); + } + /** + * @return current String path, or null if none has been set + */ + public String getPath() { + if(file == null) { + return null; + } + return file.getAbsolutePath(); + } /** * Binary search thru RandomAccessFile argument to locate the first line @@ -110,7 +133,7 @@ * @throws IOException */ public Iterator getSequentialIterator() throws IOException { - BufferedReader br = new BufferedReader(new FileReader(this)); + BufferedReader br = new BufferedReader(new FileReader(file)); return new RecordIterator(br); } @@ -121,7 +144,7 @@ */ public Iterator getRecordIterator(final String prefix) throws IOException { RecordIterator itr = null; - RandomAccessFile raf = new RandomAccessFile(this,"r"); + RandomAccessFile raf = new RandomAccessFile(file,"r"); long offset = findKeyOffset(raf,prefix); lastMatchOffset = offset; BufferedReader br = new BufferedReader(new FileReader(raf.getFD())); @@ -140,7 +163,7 @@ throws IOException { ReverseRecordIterator itr = null; - RandomAccessFile raf = new RandomAccessFile(this,"r"); + RandomAccessFile raf = new RandomAccessFile(file,"r"); long offset = findKeyOffset(raf,prefix); if(offset < 1) { return new ReverseRecordIterator(null); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bra...@us...> - 2007-08-29 00:11:18
|
Revision: 1961 http://archive-access.svn.sourceforge.net/archive-access/?rev=1961&view=rev Author: bradtofel Date: 2007-08-28 17:11:16 -0700 (Tue, 28 Aug 2007) Log Message: ----------- BUGFIX: (unreported) was not closing file descriptor in getReverseRecordIterator() when no results were found, which was (often.. : ) the case with empty .cdx files. Modified Paths: -------------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/flatfile/FlatFile.java Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/flatfile/FlatFile.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/flatfile/FlatFile.java 2007-08-27 21:36:41 UTC (rev 1960) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/flatfile/FlatFile.java 2007-08-29 00:11:16 UTC (rev 1961) @@ -168,6 +168,7 @@ RandomAccessFile raf = new RandomAccessFile(file,"r"); long offset = findKeyOffset(raf,prefix); if(offset < 1) { + raf.close(); return new ReverseRecordIterator(null); } raf.seek(raf.getFilePointer()-1); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bra...@us...> - 2007-11-29 20:39:30
|
Revision: 2097 http://archive-access.svn.sourceforge.net/archive-access/?rev=2097&view=rev Author: bradtofel Date: 2007-11-29 12:39:33 -0800 (Thu, 29 Nov 2007) Log Message: ----------- FEATURE: added store() method to write Iterator<String> into target file. Modified Paths: -------------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/flatfile/FlatFile.java Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/flatfile/FlatFile.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/flatfile/FlatFile.java 2007-11-29 20:32:18 UTC (rev 2096) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/flatfile/FlatFile.java 2007-11-29 20:39:33 UTC (rev 2097) @@ -28,6 +28,7 @@ import java.io.File; import java.io.FileReader; import java.io.IOException; +import java.io.PrintWriter; import java.io.RandomAccessFile; import java.util.Iterator; @@ -177,6 +178,14 @@ return itr; } + public void store(Iterator<String> itr) throws IOException { + PrintWriter pw = new PrintWriter(file); + while(itr.hasNext()) { + pw.println(file); + } + pw.close(); + } + private static void USAGE() { System.err.println("Usage: PREFIX FILE1 [FILE2] ..."); System.exit(3); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bra...@us...> - 2008-02-01 01:44:50
|
Revision: 2167 http://archive-access.svn.sourceforge.net/archive-access/?rev=2167&view=rev Author: bradtofel Date: 2008-01-31 17:44:53 -0800 (Thu, 31 Jan 2008) Log Message: ----------- FEATURE: now merges results from multiple search files, so output is sorted. Modified Paths: -------------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/flatfile/FlatFile.java Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/flatfile/FlatFile.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/flatfile/FlatFile.java 2008-02-01 00:10:36 UTC (rev 2166) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/flatfile/FlatFile.java 2008-02-01 01:44:53 UTC (rev 2167) @@ -30,9 +30,11 @@ import java.io.IOException; import java.io.PrintWriter; import java.io.RandomAccessFile; +import java.util.Comparator; import java.util.Iterator; import org.archive.wayback.util.CloseableIterator; +import org.archive.wayback.util.CompositeSortedIterator; /** * Subclass of File, which allows binary searching, returning Iterators @@ -199,25 +201,36 @@ USAGE(); } String prefix = args[0]; - for(int i=1; i < args.length; i++) { - FlatFile ff = new FlatFile(args[i]); - RecordIterator ri; - try { - ri = (RecordIterator) ff.getRecordIterator(prefix); - while(ri.hasNext()) { - String line = (String) ri.next(); - if(!line.startsWith(prefix)) { - break; + CloseableIterator<String> itr; + try { + if(args.length == 2) { + FlatFile ff = new FlatFile(args[1]); + itr = (RecordIterator) ff.getRecordIterator(prefix); + } else { + Comparator<String> comp = new Comparator<String>() { + public int compare(String o1, String o2) { + return o1.compareTo(o2); } - if(args.length > 2) { - System.out.println(args[i] + " " + line); - } else { - System.out.println(line); - } + }; + CompositeSortedIterator<String> csi = + new CompositeSortedIterator<String>(comp); + RecordIterator fitr; + for(int i=1; i < args.length; i++) { + FlatFile ff = new FlatFile(args[i]); + fitr = (RecordIterator) ff.getRecordIterator(prefix); + csi.addComponent(fitr); } - } catch (IOException e) { - e.printStackTrace(); + itr = csi; } + while(itr.hasNext()) { + String line = (String) itr.next(); + if(!line.startsWith(prefix)) { + break; + } + System.out.println(line); + } + } catch (IOException e) { + e.printStackTrace(); } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bra...@us...> - 2008-06-04 00:07:57
|
Revision: 2279 http://archive-access.svn.sourceforge.net/archive-access/?rev=2279&view=rev Author: bradtofel Date: 2008-06-03 17:08:01 -0700 (Tue, 03 Jun 2008) Log Message: ----------- BUGFIX(unreported): was appending file.toString() not itr.next() in store() Modified Paths: -------------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/flatfile/FlatFile.java Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/flatfile/FlatFile.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/flatfile/FlatFile.java 2008-06-04 00:05:34 UTC (rev 2278) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/util/flatfile/FlatFile.java 2008-06-04 00:08:01 UTC (rev 2279) @@ -183,7 +183,7 @@ public void store(Iterator<String> itr) throws IOException { PrintWriter pw = new PrintWriter(file); while(itr.hasNext()) { - pw.println(file); + pw.println(itr.next()); } pw.close(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |