+++ /dev/null
-// Copyright 2004 Adam Megacz, see the COPYING file for licensing [GPL]
-package org.ibex;
-
-import java.io.*;
-import org.ibex.util.*;
-import org.bouncycastle.util.encoders.Base64;
-
-/** Manages access to ~/.ibex */
-public class LocalStorage {
-
- static String ibexDirName = System.getProperty("user.home") + java.io.File.separatorChar + ".ibex";
-
- static java.io.File ibexDir = null;
- static java.io.File cacheDir = null;
-
- static {
- try {
- ibexDir = new java.io.File(ibexDirName);
- if (!ibexDir.mkdirs()) ibexDir = null;
- try {
- cacheDir = new java.io.File(ibexDirName + java.io.File.separatorChar + "cache");
- if (!cacheDir.mkdirs()) cacheDir = null;
- } catch (Exception e) {
- Log.warn(LocalStorage.class, "unable to create cache directory " +
- ibexDirName + java.io.File.separatorChar + "cache");
- }
- } catch (Exception e) {
- Log.warn(LocalStorage.class, "unable to create ibex directory " + ibexDirName);
- }
- }
-
- // FEATURE: we ought to be able to do stuff like sha1-checking and date checking on cached resources
- public static class Cache {
-
- private static void delTree(java.io.File f) throws IOException {
- if (f.isDirectory()) {
- String[] s = f.list();
- for(int i=0; i<s.length; i++)
- delTree(new java.io.File(f.getPath() + java.io.File.separatorChar + s[i]));
- }
- f.delete();
- }
-
- public static void flush() throws IOException {
- delTree(cacheDir);
- cacheDir.mkdirs();
- }
-
- public static java.io.File getCacheFileForKey(String key) {
- // FEATURE: be smarter here
- return new java.io.File(cacheDir.getPath() + File.separatorChar + new String(Base64.encode(key.getBytes())));
- }
-
- }
-}