package codeine.version;
import java.io.File;
import java.io.IOException;
import javax.inject.Inject;
import org.apache.log4j.Logger;
import codeine.utils.JsonUtils;
import codeine.utils.TextFileUtils;
import com.google.gson.Gson;
public class PersistentFileJsonProvider {
private static final Logger log = Logger.getLogger(PersistentFileJsonProvider.class);
@Inject
private Gson gson;
public PersistentFileJsonProvider() {
super();
}
public <T> T get(String file2, Class<T> classOfT, T defaultValue) {
File file = new File(file2);
if (!file.exists())
{
new File(file.getParent()).mkdirs();
try {
file.createNewFile();
TextFileUtils.setContents(file2, gson.toJson(defaultValue));
} catch (IOException e) {
log.warn("failed to create version mapping file " + file2, e);
throw new RuntimeException(e);
}
return defaultValue;
}
return JsonUtils.fromJsonFromFile(file2, classOfT);
}
}