FileCacheTools.java
package eu.javaexperience.cache;
import java.io.File;
import java.io.Serializable;
import eu.javaexperience.interfaces.simple.SimpleGet;
import eu.javaexperience.io.SerializationTools;
public class FileCacheTools
{
public static <T extends Serializable> T getOrCalculate(File f, SimpleGet<T> calculate)
{
T ret = null;
try
{
ret = (T) SerializationTools.deserializeFromFile(f);
return ret;
}
catch(Exception e){}
ret = calculate.get();
SerializationTools.serializeIntoFile(f, ret);
return ret;
}
}