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); } } }