src/com/beem/project/beem/service/BeemCapsManager.java
changeset 901 6e5999172eb1
parent 795 b2572c048dd7
child 934 6b30719f4de6
equal deleted inserted replaced
900:56e0eadf8e87 901:6e5999172eb1
    91     }
    91     }
    92 
    92 
    93 
    93 
    94     @Override
    94     @Override
    95     protected DiscoverInfo load(String ver) {
    95     protected DiscoverInfo load(String ver) {
    96 	File fver = new File(mCacheDir, ver);
    96 	File fver = new File(mCacheDir, sanitizeName(ver));
    97 	try {
    97 	try {
    98 	    Reader fr = new BufferedReader(new FileReader(fver));
    98 	    Reader fr = new BufferedReader(new FileReader(fver));
    99 	    try {
    99 	    try {
   100 		if (mParser == null)
   100 		if (mParser == null)
   101 		    mParser = makeParser();
   101 		    mParser = makeParser();
   113 	return null;
   113 	return null;
   114     }
   114     }
   115 
   115 
   116     @Override
   116     @Override
   117     protected void store(String ver, DiscoverInfo info) {
   117     protected void store(String ver, DiscoverInfo info) {
   118 	File fver = new File(mCacheDir, ver);
   118 
       
   119 	File fver = new File(mCacheDir, sanitizeName(ver));
   119 	try {
   120 	try {
   120 	    Writer fw = new BufferedWriter(new FileWriter(fver));
   121 	    Writer fw = new BufferedWriter(new FileWriter(fver));
   121 	    try {
   122 	    try {
   122 		String data  = info.toXML();
   123 		String data  = info.toXML();
   123 		fw.write(data, 0, data.length());
   124 		fw.write(data, 0, data.length());
   131 
   132 
   132     @Override
   133     @Override
   133     protected boolean isInCache(String ver) {
   134     protected boolean isInCache(String ver) {
   134 	boolean result = super.isInCache(ver);
   135 	boolean result = super.isInCache(ver);
   135 	if (!result) {
   136 	if (!result) {
   136 	    File fver = new File(mCacheDir, ver);
   137 	    File fver = new File(mCacheDir, sanitizeName(ver));
   137 	    result = fver.exists();
   138 	    result = fver.exists();
   138 	}
   139 	}
   139 	return result;
   140 	return result;
   140     }
   141     }
   141 
   142 
   157     private XmlPullParser makeParser() throws XmlPullParserException {
   158     private XmlPullParser makeParser() throws XmlPullParserException {
   158 	XmlPullParserFactory fact = XmlPullParserFactory.newInstance();
   159 	XmlPullParserFactory fact = XmlPullParserFactory.newInstance();
   159 	fact.setNamespaceAware(true);
   160 	fact.setNamespaceAware(true);
   160 	return fact.newPullParser();
   161 	return fact.newPullParser();
   161     }
   162     }
       
   163 
       
   164     /**
       
   165      * Sanitize the base64 ver attribute in order to use it as a filename.
       
   166      * @param ver the base64 ver attribute
       
   167      * @return a sanitize filename for the ver attribute
       
   168      */
       
   169     private String sanitizeName(String ver) {
       
   170 	return ver.replaceAll("/", ".");
       
   171     }
   162 }
   172 }