Translater/src/main/java/io/gitlab/jfronny/translater/CachingTransformer.java

44 lines
1.3 KiB
Java

package io.gitlab.jfronny.translater;
import net.fabricmc.loader.api.FabricLoader;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
public abstract class CachingTransformer implements StringTransformer {
Properties cache = null;
private static final File cacheFile = new File(FabricLoader.getInstance().getConfigDirectory(), "Translater.cache");
@Override
public String transform(String str) {
if (cache == null) {
cache = new Properties();
if (cacheFile.exists()) {
try {
FileInputStream inS = new FileInputStream(cacheFile);
cache.load(inS);
inS.close();
} catch (IOException e) {
e.printStackTrace();
}
} else {
}
}
if (!cache.containsKey(str)) {
cache.put(str, getTransformed(str));
try {
FileOutputStream outS = new FileOutputStream(cacheFile);
cache.store(outS, "---Lang---");
outS.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return (String) cache.get(str);
}
public abstract String getTransformed(String str);
}