/* * DBFShapeImporter.java * * Created on July 6, 2006, 2:28 PM * */ package edu.oregonstate.cartography.geometryimport; import java.io.File; /** * Extends DBFImporter to add support for finding a dbf file that is part of * a ESRI shape file set. * @author jenny */ public class DBFShapeImporter extends DBFImporter { /** Creates a new instance of DBFShapeImporter */ public DBFShapeImporter() { } private String findDbfFileSibling(String filePath) { if (filePath == null || filePath.length() < 5) return null; String lowerCaseFilePath = filePath.toLowerCase(); if (lowerCaseFilePath.endsWith(".dbf")) return filePath; final boolean is_dbf_sibling = lowerCaseFilePath.endsWith(".shp") || lowerCaseFilePath.endsWith(".prj") || lowerCaseFilePath.endsWith(".sbn") || lowerCaseFilePath.endsWith(".sbx") || lowerCaseFilePath.endsWith(".shx"); if (!is_dbf_sibling) return null; filePath = ShapeGeometryImporter.replaceExtension(filePath, "dbf"); if (!new File(filePath).exists()) filePath = ShapeGeometryImporter.replaceExtension(filePath, "DBF"); return new File(filePath).exists() ? filePath : null; } public Table read(String filePath) throws java.io.IOException { return super.read(findDbfFileSibling(filePath)); } }