blob: 099b41ccf0b1264f427fa4776de5e7a0d1c8292c [file] [log] [blame]
package org.jetbrains.jps.android;
import com.intellij.util.io.DataExternalizer;
import com.intellij.util.io.EnumeratorStringDescriptor;
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 AndroidApkBuilderConfigStateStorage extends AbstractStateStorage<String, AndroidApkBuilderConfigState> {
private AndroidApkBuilderConfigStateStorage(@NotNull File dataStorageRoot, @NotNull String storageName) throws IOException {
super(AndroidJpsUtil.getStorageFile(dataStorageRoot, storageName), new EnumeratorStringDescriptor(), new MyDataExternalizer());
}
private static class MyDataExternalizer implements DataExternalizer<AndroidApkBuilderConfigState> {
@Override
public void save(@NotNull DataOutput out, AndroidApkBuilderConfigState value) throws IOException {
value.save(out);
}
@Override
public AndroidApkBuilderConfigState read(@NotNull DataInput in) throws IOException {
return new AndroidApkBuilderConfigState(in);
}
}
public static class Provider extends StorageProvider<AndroidApkBuilderConfigStateStorage> {
private final String myStorageName;
public Provider(@NotNull String storageName) {
myStorageName = storageName;
}
@NotNull
@Override
public AndroidApkBuilderConfigStateStorage createStorage(File targetDataDir) throws IOException {
return new AndroidApkBuilderConfigStateStorage(targetDataDir, myStorageName);
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Provider provider = (Provider)o;
if (!myStorageName.equals(provider.myStorageName)) return false;
return true;
}
@Override
public int hashCode() {
return myStorageName.hashCode();
}
}
}