Ejemplo n.º 1
0
  // ---------------------------------------------------------------------------
  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);
  }
Ejemplo n.º 2
0
  // ---------------------------------------------------------------------------
  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);
  }