// --------------------------------------------------------------------------- public CachedFile locateFileUsingRules(String fileName) { List<String> paths; CachedFile ret = null; CachedFile f; f = new CachedFile(fileName); if (f.exists()) ret = f; else if ((ret = m_locatedFiles.get(fileName)) == null) { paths = m_fileManager.getPossibleFiles(fileName); for (String path : paths) { f = new CachedFile(path); if (f.exists()) { ret = f; m_locatedFiles.put(fileName, ret); break; } else if (m_targetRuleMap.containsKey(path)) { ret = f; break; } } } return (ret); }
// --------------------------------------------------------------------------- public Rule findTargetRule(String target) throws TablesawException { Rule rule = null; if (m_resolved) { ArrayList<String> posTargets; String posTarget = target; if (m_noRulesList.contains(target)) return (null); if ((rule = m_locatedRules.get(target)) != null) return (rule); // First look in name map rule = m_nameRuleMap.get(target); if (rule == null) { // Now look for targets rule = m_targetRuleMap.get(posTarget); if (rule == null) { posTargets = m_fileManager.getPossibleFiles(posTarget); for (String t : posTargets) { rule = m_targetRuleMap.get(t); if (rule != null) break; } } } Debug.print("Rule for " + target + " is " + rule); if (rule != null) { m_locatedRules.put(target, rule); } else m_noRulesList.add(target); } return (rule); }