X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=tim%2Fprune%2Ffunction%2Fcache%2FTileSet.java;fp=tim%2Fprune%2Ffunction%2Fcache%2FTileSet.java;h=0000000000000000000000000000000000000000;hb=ce6f2161b8596f7018d6a76bff79bc9e571f35fd;hp=525696e518e8566289b90cb11691930fbef9e2fc;hpb=2d8cb72e84d5cc1089ce77baf1e34ea3ea2f8465;p=GpsPrune.git diff --git a/tim/prune/function/cache/TileSet.java b/tim/prune/function/cache/TileSet.java deleted file mode 100644 index 525696e..0000000 --- a/tim/prune/function/cache/TileSet.java +++ /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 '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; - } -}