blob: e0eb90cd4368d2a7d31b7407e410ccc6ac3fc99e [file] [log] [blame]
package org.jetbrains.jps.android;
import com.intellij.util.io.DataExternalizer;
import com.intellij.util.io.EnumeratorStringDescriptor;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jps.builders.storage.StorageProvider;
import org.jetbrains.jps.incremental.storage.AbstractStateStorage;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.File;
import java.io.IOException;
/**
* @author Eugene.Kudelevsky
*/
public class AndroidBuildConfigStateStorage extends AbstractStateStorage<String, AndroidBuildConfigState> {
public static final StorageProvider<AndroidBuildConfigStateStorage> PROVIDER = new StorageProvider<AndroidBuildConfigStateStorage>() {
@NotNull
@Override
public AndroidBuildConfigStateStorage createStorage(File targetDataDir) throws IOException {
return new AndroidBuildConfigStateStorage(targetDataDir);
}
};
@NonNls private static final String BUILD_CONFIG_STORAGE = "build_config";
private AndroidBuildConfigStateStorage(@NotNull File dataStorageRoot) throws IOException {
super(AndroidJpsUtil.getStorageFile(dataStorageRoot, BUILD_CONFIG_STORAGE), new EnumeratorStringDescriptor(), new MyDataExternalizer());
}
private static class MyDataExternalizer implements DataExternalizer<AndroidBuildConfigState> {
@Override
public void save(@NotNull DataOutput out, AndroidBuildConfigState value) throws IOException {
value.save(out);
}
@Override
public AndroidBuildConfigState read(@NotNull DataInput in) throws IOException {
return new AndroidBuildConfigState(in);
}
}
}