@Nullable public Image load() throws IOException { String cacheKey = null; InputStream stream = null; URL url = null; if (cls != null) { //noinspection IOResourceOpenedButNotSafelyClosed stream = cls.getResourceAsStream(path); if (stream == null) return null; } if (stream == null) { cacheKey = path; Image image = ourCache.get(cacheKey); if (image != null) return image; url = new URL(path); URLConnection connection = url.openConnection(); if (connection instanceof HttpURLConnection) { if (!original) return null; connection.addRequestProperty("User-Agent", "IntelliJ"); } stream = connection.getInputStream(); } Image image = type.load(url, stream, scale); if (image != null && cacheKey != null) { ourCache.put(cacheKey, image); } return image; }
@Nullable public static Image loadFromResource(String path, Class aClass) { for (Pair<String, Integer> each : getFileNames(path)) { InputStream stream = aClass.getResourceAsStream(each.first); if (stream == null) continue; Image image = loadFromStream(stream, each.second); if (image != null) return image; } return null; }