Search in sources :

Example 1 with Pack

use of rtree.Pack in project OsmAnd-tools by osmandapp.

the class AbstractIndexPartCreator method packRtreeFile.

public static RTree packRtreeFile(RTree tree, String nonPackFileName, String packFileName) throws IOException {
    try {
        // $NON-NLS-1$
        assert rtree.Node.MAX < 50 : "It is better for search performance";
        tree.flush();
        File file = new File(packFileName);
        if (file.exists()) {
            file.delete();
        }
        long rootIndex = tree.getFileHdr().getRootIndex();
        if (!nodeIsLastSubTree(tree, rootIndex)) {
            // there is a bug for small files in packing method
            new Pack().packTree(tree, packFileName);
            tree.getFileHdr().getFile().close();
            file = new File(nonPackFileName);
            file.delete();
            return new RTree(packFileName);
        }
    } catch (RTreeException e) {
        // $NON-NLS-1$
        log.error("Error flushing", e);
        throw new IOException(e);
    }
    return tree;
}
Also used : RTreeException(rtree.RTreeException) RTree(rtree.RTree) IOException(java.io.IOException) Pack(rtree.Pack) File(java.io.File)

Aggregations

File (java.io.File)1 IOException (java.io.IOException)1 Pack (rtree.Pack)1 RTree (rtree.RTree)1 RTreeException (rtree.RTreeException)1