]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - tim/prune/function/cache/TileSet.java
Moved source into separate src directory due to popular request
[GpsPrune.git] / tim / prune / function / cache / TileSet.java
diff --git a/tim/prune/function/cache/TileSet.java b/tim/prune/function/cache/TileSet.java
deleted file mode 100644 (file)
index 525696e..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-package tim.prune.function.cache;
-
-import java.io.File;
-
-
-/**
- * Class to hold information about a single tile set
- * within the overall Tile Cache.
- */
-public class TileSet
-{
-       /** Summary row info for whole tileset */
-       private RowInfo _rowInfo = null;
-       /** Path relative to mapcache root */
-       private String _path = null;
-       /** Comma-separated list of configs using this tileset */
-       private String _usedBy = null;
-
-
-       /**
-        * Constructor
-        * @param inDir directory of tileset
-        * @param inPath String describing relative path from cache root
-        * @param inUsedBy String describing which configs use this Tileset
-        */
-       public TileSet(File inDir, String inPath, String inUsedBy)
-       {
-               _path = inPath;
-               _usedBy = inUsedBy;
-               _rowInfo = new RowInfo();
-               // Go through zoom directories and construct row info objects
-               if (inDir != null && inDir.exists() && inDir.isDirectory() && inDir.canRead())
-               {
-                       for (File subdir : inDir.listFiles())
-                       {
-                               if (subdir != null && subdir.exists() && subdir.isDirectory()
-                                       && subdir.canRead() && isNumeric(subdir.getName()))
-                               {
-                                       RowInfo row = makeRowInfo(subdir);
-                                       _rowInfo.addRow(row);
-                               }
-                       }
-               }
-       }
-
-       /**
-        * Check if a directory name is numeric
-        * @param inName name of directory
-        * @return true if it only contains characters 0-9
-        */
-       public static boolean isNumeric(String inName)
-       {
-               if (inName == null || inName.equals("")) return false;
-               for (int i=0; i<inName.length(); i++)
-               {
-                       char a = inName.charAt(i);
-                       if (a < '0' || a > '9') return false;
-               }
-               return true;
-       }
-
-       /**
-        * Check if a filename is numeric up until the first dot
-        * This appears to be much faster than scanning for a . with indexOf, then
-        * chopping to make a new String, and then calling isNumeric to scan through again
-        * @param inName name of file
-        * @return true if it only contains characters 0-9 before the first dot
-        */
-       public static boolean isNumericUntilDot(String inName)
-       {
-               if (inName == null || inName.equals("") || inName.charAt(0) == '.') {
-                       return false;
-               }
-               try
-               {
-                       char c = '.';
-                       int i = 0;
-                       do
-                       {
-                               c = inName.charAt(i);
-                               if (c == '.') return true; // found the dot, so stop
-                               if (c < '0' || c > '9') return false; // not numeric
-                               i++;
-                       } while (c != '\0');
-               }
-               catch (IndexOutOfBoundsException iobe) {}
-               // Didn't find a dot, so can't be a valid name
-               return false;
-       }
-
-       /**
-        * Make a RowInfo object from the given directory
-        * @param inDir directory for a single zoom level
-        * @return RowInfo object describing files and size
-        */
-       private static RowInfo makeRowInfo(File inDir)
-       {
-               RowInfo row = new RowInfo();
-               row.setZoom(Integer.parseInt(inDir.getName()));
-               for (File subdir : inDir.listFiles())
-               {
-                       if (subdir != null && subdir.exists() && subdir.isDirectory()
-                               && subdir.canRead() && isNumeric(subdir.getName()))
-                       {
-                               // Found a directory of images (finally!)
-                               for (File f : subdir.listFiles())
-                               {
-                                       if (f != null && f.exists() && f.isFile() && f.canRead())
-                                       {
-                                               if (isNumericUntilDot(f.getName())) {
-                                                       row.addTile(f.length());
-                                               }
-                                       }
-                               }
-                       }
-               }
-               return row;
-       }
-
-       /**
-        * @return row info object
-        */
-       public RowInfo getRowInfo() {
-               return _rowInfo;
-       }
-
-       /** @return relative path to tileset */
-       public String getPath() {
-               return _path;
-       }
-
-       /** @return users of tileset */
-       public String getUsedBy() {
-               return _usedBy;
-       }
-}