[sikuli] 143/385: redirected the relevant methods in ImageLocator to ImagePath

Gilles Filippini pini at moszumanska.debian.org
Sun Jun 29 19:26:01 UTC 2014


This is an automated email from the git hooks/post-receive script.

pini pushed a commit to tag upstream/1.1.0_beta1
in repository sikuli.

commit 403f7453163fd5001e9810de8cf257a7a9eda04e
Author: Raimund Hocke <rmhdevelop at me.com>
Date:   Thu Jan 9 11:56:30 2014 +0100

    redirected the relevant methods in ImageLocator to ImagePath
---
 .../main/java/org/sikuli/script/ImageLocator.java  | 597 +++++++++------------
 1 file changed, 267 insertions(+), 330 deletions(-)

diff --git a/API/src/main/java/org/sikuli/script/ImageLocator.java b/API/src/main/java/org/sikuli/script/ImageLocator.java
index c02fd8c..6491a34 100755
--- a/API/src/main/java/org/sikuli/script/ImageLocator.java
+++ b/API/src/main/java/org/sikuli/script/ImageLocator.java
@@ -24,376 +24,313 @@ import org.sikuli.basics.Settings;
 /**
  * This class is currently used to locate image files in the filesystem <br>
  * and in the internet (the files are cached locally) <br>
- * 
- * @deprecated will completely replaced by the classes Image and ImagePath
+ *
+ * @deprecated will be completely replaced by the classes Image and ImagePath
  */
 @Deprecated
 public class ImageLocator {
 
-    static ArrayList<String> pathList = new ArrayList<String>();
-    static int firstEntries = 1;
-    static File _cache_dir_global = new File(Settings.BaseTempPath, "sikuli_cache/SIKULI_GLOBAL/");
-    static Map<URI, String> _cache = new HashMap<URI, String>();
+  static ArrayList<String> pathList = new ArrayList<String>();
+  static int firstEntries = 1;
+  static File _cache_dir_global = new File(Settings.BaseTempPath, "sikuli_cache/SIKULI_GLOBAL/");
+  static Map<URI, String> _cache = new HashMap<URI, String>();
 
-    static {
-        pathList.add("");
-        resetImagePath("");
-        if (pathList.size() >= 1 && "".equals(pathList.get(0))) {
-            pathList.set(0, System.getProperty("user.dir"));
-        }
-        if (!_cache_dir_global.exists()) {
-            try {
-                _cache_dir_global.mkdir();
-            } catch (Exception e) {
-                Debug.error("ImageLocator: Local cache dir not possible: " + _cache_dir_global);
-                _cache_dir_global = null;
-            }
-        }
+  static {
+    pathList.add("");
+    resetImagePath("");
+    if (pathList.size() >= 1 && "".equals(pathList.get(0))) {
+      pathList.set(0, System.getProperty("user.dir"));
     }
+    if (!_cache_dir_global.exists()) {
+      try {
+        _cache_dir_global.mkdir();
+      } catch (Exception e) {
+        Debug.error("ImageLocator: Local cache dir not possible: " + _cache_dir_global);
+        _cache_dir_global = null;
+      }
+    }
+  }
 
-    private static String[] splitImagePath(String path) {
-        if (path == null || "".equals(path)) {
-            return new String[0];
-        }
-        path = path.replaceAll("[Hh][Tt][Tt][Pp]://", "__http__//");
-        path = path.replaceAll("[Hh][Tt][Tt][Pp][Ss]://", "__https__//");
-        String[] pl = path.split(Settings.getPathSeparator());
-        File pathName;
-        for (int i = 0; i < pl.length; i++) {
-            boolean isURL = false;
-            path = pl[i];
-            if (path.indexOf("__http__") >= 0) {
-                path = path.replaceAll("__http__//", "http://");
-                isURL = true;
-            } else if (path.indexOf("__https__") >= 0) {
-                path = path.replaceAll("__https__//", "https://");
-                isURL = true;
-            }
-            if (isURL) {
-                if ((path = getURL(path).getPath()) != null) {
-                    if (!path.endsWith("/")) {
-                        pl[i] = path + "/";
-                    }
-                } else {
-                    pl[i] = null;
-                }
-            } else {
-                pathName = new File(path);
-                if (pathName.exists()) {
-                    pl[i] = FileManager.slashify(pathName.getAbsolutePath(), true);
-                } else {
-                    pathList.remove(pl[i]);
-                    pl[i] = null;
-                }
-            }
-        }
-        return pl;
+  /**
+   * forwarded to ImagePath.getImagePath()
+   *
+   * @return an array of the imagepaths as added
+   * @deprecated
+   */
+  @Deprecated
+  public static String[] getImagePath() {
+    return ImagePath.getImagePath();
+  }
+
+  /**
+   * forwarded to ImagePath.add()
+   *
+   * @return null if not successful
+   * @deprecated
+   */
+  @Deprecated
+  public static String addImagePath(String path) {
+    if (!ImagePath.add(path)) {
+      return null;
+    } else {
+      return path;
     }
+  }
 
-    private static URL getURL(String s) {
-        try {
-            URL url = new URL(s);
-            return url;
-        } catch (MalformedURLException e) {
-            return null;
+  /**
+   * forwarded to ImagePath.remove()
+   *
+   * @deprecated
+   */
+  @Deprecated
+  public static void removeImagePath(String path) {
+    ImagePath.remove(path);
+  }
+
+  /**
+   * forwarded to ImagePath.setBundlePath()
+   *
+   * @deprecated
+   */
+  @Deprecated
+  public static void setBundlePath(String bundlePath) {
+    ImagePath.setBundlePath(bundlePath);
+  }
+
+  /**
+   * forwarded to ImagePath.getBundlePath()
+   *
+   * @return the current bundlepath
+   * @deprecated
+   */
+  @Deprecated
+  public static String getBundlePath() {
+    return ImagePath.getBundlePath();
+  }
+
+  public static String locate(String filename) throws IOException {
+    if (filename != null) {
+      String ret;
+      URL url = getURL(filename);
+      if (url != null) {
+        ret = getFileFromURL(url);
+        if (ret != null) {
+          return ret;
+        }
+      }
+      File f = new File(filename);
+      if (f.isAbsolute()) {
+        if (f.exists()) {
+          return f.getAbsolutePath();
+        }
+      } else {
+        ret = searchFile(filename);
+        if (ret != null) {
+          return ret;
         }
+      }
+    } else {
+      filename = "*** not known ***";
     }
+    throw new FileNotFoundException("ImageLocator.locate: " + filename + " does not exist or cannot be found on ImagePath");
+  }
 
-    /**
-     * list entries might be a file path or an url (http/https) <br>list[0]
-     * current bundlepath (Settings.BundlePath) (might be null) <br>list[1:n]
-     * path's from -DSIKULI_IMAGE_PATH=... <br>list[n+1:] path's added later
-     * <br>each path is contained only once <br>each contained file path
-     * existed at the time it was added
-     *
-     * @return list of absolute path strings (a path might not exist any more)
-     */
-    public static String[] getImagePath() {
-        return pathList.toArray(new String[0]);
-    }
+  /**
+   * forwarded to Image.create(filename).get()
+   *
+   * @return a BufferedImage from the given filename or null
+   * @deprecated
+   */
+  @Deprecated
+  public static BufferedImage getImage(String filename) {
+    return Image.create(filename).get();
+  }
 
-    private static String addImagePath(String[] pl, boolean first) {
-        int addedAt = firstEntries;
-        if (addedAt == pathList.size()) {
-            first = false;
-        }
-        String epl;
-        File fepl;
-        for (int i = 0; i < pl.length; i++) {
-            if (pl[i] == null) {
-                continue;
-            }
-            epl = pl[i];
-            //fepl = new File(epl);
-//TODO handle relative paths
-            if (!pathList.contains(epl)) {
-                if (!first) {
-                    pathList.add(epl);
-                } else {
-                    pathList.add(addedAt, epl);
-                    addedAt++;
-                }
-            }
+  /***************************
+  * methods below are obsolete
+  ****************************/
+  private static String[] splitImagePath(String path) {
+    if (path == null || "".equals(path)) {
+      return new String[0];
+    }
+    path = path.replaceAll("[Hh][Tt][Tt][Pp]://", "__http__//");
+    path = path.replaceAll("[Hh][Tt][Tt][Pp][Ss]://", "__https__//");
+    String[] pl = path.split(Settings.getPathSeparator());
+    File pathName;
+    for (int i = 0; i < pl.length; i++) {
+      boolean isURL = false;
+      path = pl[i];
+      if (path.indexOf("__http__") >= 0) {
+        path = path.replaceAll("__http__//", "http://");
+        isURL = true;
+      } else if (path.indexOf("__https__") >= 0) {
+        path = path.replaceAll("__https__//", "https://");
+        isURL = true;
+      }
+      if (isURL) {
+        if ((path = getURL(path).getPath()) != null) {
+          if (!path.endsWith("/")) {
+            pl[i] = path + "/";
+          }
+        } else {
+          pl[i] = null;
         }
-        if (pl.length > 0) {
-            return pl[0];
+      } else {
+        pathName = new File(path);
+        if (pathName.exists()) {
+          pl[i] = FileManager.slashify(pathName.getAbsolutePath(), true);
         } else {
-            return null;
+          pathList.remove(pl[i]);
+          pl[i] = null;
         }
+      }
     }
+    return pl;
+  }
 
-    private static String addImagePath(String path, boolean first) {
-        String pl[] = splitImagePath(path);
-        removeImagePath(pl);
-        return addImagePath(pl, first);
+  private static URL getURL(String s) {
+    try {
+      URL url = new URL(s);
+      return url;
+    } catch (MalformedURLException e) {
+      return null;
     }
+  }
 
-    /**
-     * the given path(s) <br>- might be a file path or an url (http/https) <br>
-     * - if file path relative: make absolute path based on current working
-     * directory <br>- is(are) first removed from the list <br>- and then
-     * added to the end of the list (file path: if it exists)
-     *
-     * @param path absolute or relative path or url <br>might be a path list
-     * string with seperator : (or ; Windows)
-     */
-    public static String addImagePath(String path) {
-        return addImagePath(path, false);
+  private static String addImagePath(String[] pl, boolean first) {
+    int addedAt = firstEntries;
+    if (addedAt == pathList.size()) {
+      first = false;
     }
-
-    /**
-     * the given path(s) <br>- might be a file path or an url (http/https) <br>
-     * - if file path relative: make absolute path based on current working
-     * directory <br>- is(are) first removed from the list <br>- and then
-     * added to the beginning of the list (file path: if it exists) <br>as
-     * entry 1 after the current bundlepath (entry 0)
-     *
-     * @param path absolute or relative path or url <br>might be a path list
-     * string with seperator : (or ; Windows)
-     */
-    public static String addImagePathFirst(String path) {
-        return addImagePath(path, true);
+    String epl;
+    File fepl;
+    for (int i = 0; i < pl.length; i++) {
+      if (pl[i] == null) {
+        continue;
+      }
+      epl = pl[i];
+      //fepl = new File(epl);
+//TODO handle relative paths
+      if (!pathList.contains(epl)) {
+        if (!first) {
+          pathList.add(epl);
+        } else {
+          pathList.add(addedAt, epl);
+          addedAt++;
+        }
+      }
     }
-
-    /**
-     * the given paths <br>- might be a file path or an url (http/https) <br>
-     * - if file path relative: make absolute path based on current working
-     * directory <br>- are removed from the list <br>- and then added to the
-     * end of the list (file path: if it exists)
-     *
-     * @param pl absolute or relative paths or urls as string array
-     */
-    public static String addImagePath(String[] pl) {
-        return addImagePath(pl, false);
+    if (pl.length > 0) {
+      return pl[0];
+    } else {
+      return null;
     }
+  }
 
-    /**
-     * the given paths <br>- might be a file path or an url (http/https) <br>
-     * - if file path relative: make absolute path based on current working
-     * directory <br>- are removed from the list <br>- and then added to the
-     * beginning of the list (file path: if it exists) <br>as entry 1 after
-     * the current bundlepath (entry 0)
-     *
-     * @param pl absolute or relative paths or urls as string array
-     */
-    public static String addImagePathFirst(String[] pl) {
-        return addImagePath(pl, true);
-    }
+  private static String addImagePath(String path, boolean first) {
+    String pl[] = splitImagePath(path);
+    removeImagePath(pl);
+    return addImagePath(pl, first);
+  }
 
-    /**
-     * the given path(s) <br>- might be a file path or an url (http/https) <br>
-     * - if file path relative: make absolute path based on current working
-     * directory <br>- is/are removed from the list
-     *
-     * @param path absolute or relative path(s) or url(s) might be a path list
-     * string with seperator : (or ; Windows)
-     */
-    public static void removeImagePath(String path) {
-        String pl[] = splitImagePath(path);
-        pathList.set(0, null);
-        removeImagePath(pl);
-        pathList.set(0, Settings.BundlePath + File.separator);
-    }
+  private static String addImagePathFirst(String path) {
+    return addImagePath(path, true);
+  }
 
-    /**
-     * the given path(s) <br>- might be a file path or an url (http/https) <br>
-     * - if file path relative: make absolute path based on current working
-     * directory <br>- is/are removed from the list
-     *
-     * @param pl absolute or relative path(s) or url(s) as string array
-     */
-    public static void removeImagePath(String[] pl) {
-        for (int i = 0; i < pl.length; i++) {
-            if (pl[i] != null) {
-                pathList.remove(pl[i]);
-            }
-        }
-    }
+  private static String addImagePath(String[] pl) {
+    return addImagePath(pl, false);
+  }
 
-    private static void clearImagePath() {
-        Iterator<String> ip = pathList.listIterator(1);
-        String p;
-        while (ip.hasNext()) {
-            p = ip.next();
-            if (!p.substring(0, p.length() - 1).endsWith(".sikuli")) {
-                ip.remove();
-            }
-        }
-        if (firstEntries == pathList.size()) {
-            addImagePath(System.getenv("SIKULI_IMAGE_PATH"));
-            addImagePath(System.getProperty("SIKULI_IMAGE_PATH"));
-        } else {
-            addImagePathFirst(System.getProperty("SIKULI_IMAGE_PATH"));
-            addImagePathFirst(System.getenv("SIKULI_IMAGE_PATH"));
-        }
-    }
+  private static String addImagePathFirst(String[] pl) {
+    return addImagePath(pl, true);
+  }
 
-    /**
-     * the current list is emptied <br>then add -DSIKULI_IMAGE_PATH=... and
-     * Env(SIKULI_IMAGE_PATH)
-     * <br> then the given path(s) are added using addImagePath()
-     *
-     * @param path absolute or relative path(s) or url(s) might be a path list
-     * string with seperator : (or ; Windows)
-     */
-    public static void resetImagePath(String path) {
-        clearImagePath();
-        String pl[] = splitImagePath(path);
-        if (pl.length > 0) {
-            pathList.set(0, pl[0]);
-            Settings.BundlePath = pl[0].substring(0, pl[0].length() - 1);
-            pl[0] = null;
-            addImagePath(pl);
-        }
+  private static void removeImagePath(String[] pl) {
+    for (int i = 0; i < pl.length; i++) {
+      if (pl[i] != null) {
+        pathList.remove(pl[i]);
+      }
     }
+  }
 
-    /**
-     * the current list is emptied <br>then add -DSIKULI_IMAGE_PATH=... and
-     * Env(SIKULI_IMAGE_PATH)
-     * <br> then the given path(s) are added using addImagePath()
-     *
-     * @param pl absolute or relative path(s) or url(s) as string array
-     */
-    public static void resetImagePath(String[] pl) {
-        clearImagePath();
-        addImagePath(pl);
+  private static void clearImagePath() {
+    Iterator<String> ip = pathList.listIterator(1);
+    String p;
+    while (ip.hasNext()) {
+      p = ip.next();
+      if (!p.substring(0, p.length() - 1).endsWith(".sikuli")) {
+        ip.remove();
+      }
     }
-
-    /**
-     * the given path is added to the list replacing the first entry and
-     * Settings.BundlePath is replaced as well
-     *
-     * @param bundlePath a path string relative, absolute, empty or null
-     */
-    public static void setBundlePath(String bundlePath) {
-        String pl[] = splitImagePath(bundlePath);
-        if (pl.length > 0) {
-            pathList.set(0, pl[0]);
-            Settings.BundlePath = pl[0].substring(0, pl[0].length() - 1);
-        }
+    if (firstEntries == pathList.size()) {
+      addImagePath(System.getenv("SIKULI_IMAGE_PATH"));
+      addImagePath(System.getProperty("SIKULI_IMAGE_PATH"));
+    } else {
+      addImagePathFirst(System.getProperty("SIKULI_IMAGE_PATH"));
+      addImagePathFirst(System.getenv("SIKULI_IMAGE_PATH"));
     }
+  }
 
-    /**
-     *
-     * @return the current bundle path
-     */
-    public static String getBundlePath() {
-        return pathList.get(0);
+  private static void resetImagePath(String path) {
+    clearImagePath();
+    String pl[] = splitImagePath(path);
+    if (pl.length > 0) {
+      pathList.set(0, pl[0]);
+      Settings.BundlePath = pl[0].substring(0, pl[0].length() - 1);
+      pl[0] = null;
+      addImagePath(pl);
     }
+  }
 
-    private static String searchFile(String filename) {
-        File f;
-        String ret;
-        for (Iterator<String> it = pathList.iterator(); it.hasNext();) {
-            String path = it.next();
-            URL url = getURL(path);
-            if (url != null) {
-                try {
-                    ret = getFileFromURL(new URL(url, filename));
-                    if (ret != null) {
-                        return ret;
-                    }
-                } catch (MalformedURLException ex) {
-                }
-            }
-            f = new File(path, filename);
-            if (f.exists()) {
-                Debug.log(3, "ImageLocator: found " + filename + " in " + path);
-                return f.getAbsolutePath();
-            }
-        }
-        return null;
-    }
+  private static void resetImagePath(String[] pl) {
+    clearImagePath();
+    addImagePath(pl);
+  }
 
-    private static String getFileFromURL(URL url) {
-        if (_cache_dir_global == null) {
-            Debug.error("ImageLocator.getFileFromURL: Local cache dir not available - cannot download from url" + url);
-            return null;
-        }
+  private static String searchFile(String filename) {
+    File f;
+    String ret;
+    for (Iterator<String> it = pathList.iterator(); it.hasNext();) {
+      String path = it.next();
+      URL url = getURL(path);
+      if (url != null) {
         try {
-            URI uri = url.toURI();
-            if (_cache.containsKey(uri)) {
-                Debug.log(2, "ImageLocator.getFileFromURL: " + uri + " taken from cache");
-                return _cache.get(uri);
-            }
-            String localFile = FileManager.downloadURL(url, _cache_dir_global.getPath());
-            if (localFile != null) {
-                Debug.log(2, "ImageLocator.getFileFromURL: download " + uri + " to local: " + localFile);
-                _cache.put(uri, localFile);
-            }
-            return localFile;
-        } catch (java.net.URISyntaxException e) {
-            Debug.log(2, "ImageLocator.getFileFromURL: URI syntax error: " + url + ", " + e.getMessage());
-            return null;
+          ret = getFileFromURL(new URL(url, filename));
+          if (ret != null) {
+            return ret;
+          }
+        } catch (MalformedURLException ex) {
         }
+      }
+      f = new File(path, filename);
+      if (f.exists()) {
+        Debug.log(3, "ImageLocator: found " + filename + " in " + path);
+        return f.getAbsolutePath();
+      }
     }
+    return null;
+  }
 
-    /**
-     * findX the file in the following order: <br>1. absolute path or url x)
-     * <br>2. bundle path <br>3. ENV[SIKULI_IMAGE_PATH] <br>4. Java
-     * -DSIKULI_IMAGE_PATH <br>5. paths added later using addImagePath or via
-     * import ... .sikuli
-     *
-     * @param filename relative, absolute or url
-     * @return absolute path string
-     * @throws IOException if filename cannot be located <br>x) files behind
-     * urls are loaded to local cash
-     */
-    private static String locate(String filename) throws IOException {
-        if (filename != null) {
-            String ret;
-            URL url = getURL(filename);
-            if (url != null) {
-                ret = getFileFromURL(url);
-                if (ret != null) {
-                    return ret;
-                }
-            }
-            File f = new File(filename);
-            if (f.isAbsolute()) {
-                if (f.exists()) {
-                    return f.getAbsolutePath();
-                }
-            } else {
-                ret = searchFile(filename);
-                if (ret != null) {
-                    return ret;
-                }
-            }
-        } else {
-            filename = "*** not known ***";
-        }
-        throw new FileNotFoundException("ImageLocator.locate: " + filename + " does not exist or cannot be found on ImagePath");
+  private static String getFileFromURL(URL url) {
+    if (_cache_dir_global == null) {
+      Debug.error("ImageLocator.getFileFromURL: Local cache dir not available - cannot download from url" + url);
+      return null;
     }
-
-    /**
-     * tries to findX the file using locate(filename) and loads it as image if
-     * possible
-     *
-     * @param filename
-     * @return image
-     */
-    public static BufferedImage getImage(String filename) {
-        return Image.create(filename).get();
+    try {
+      URI uri = url.toURI();
+      if (_cache.containsKey(uri)) {
+        Debug.log(2, "ImageLocator.getFileFromURL: " + uri + " taken from cache");
+        return _cache.get(uri);
+      }
+      String localFile = FileManager.downloadURL(url, _cache_dir_global.getPath());
+      if (localFile != null) {
+        Debug.log(2, "ImageLocator.getFileFromURL: download " + uri + " to local: " + localFile);
+        _cache.put(uri, localFile);
+      }
+      return localFile;
+    } catch (java.net.URISyntaxException e) {
+      Debug.log(2, "ImageLocator.getFileFromURL: URI syntax error: " + url + ", " + e.getMessage());
+      return null;
     }
+  }
 }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/sikuli.git



More information about the pkg-java-commits mailing list