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 AndroidAptStateStorage extends AbstractStateStorage<String, AndroidAptValidityState> { public static final StorageProvider<AndroidAptStateStorage> PROVIDER = new StorageProvider<AndroidAptStateStorage>() { @NotNull @Override public AndroidAptStateStorage createStorage(File targetDataDir) throws IOException { return new AndroidAptStateStorage(targetDataDir); } }; @NonNls private static final String RESOURCE_NAMES_STORAGE = "resource_names"; private AndroidAptStateStorage(@NotNull File dataStorageRoot) throws IOException { super(AndroidJpsUtil.getStorageFile(dataStorageRoot, RESOURCE_NAMES_STORAGE), new EnumeratorStringDescriptor(), new MyDataExternalizer()); } private static class MyDataExternalizer implements DataExternalizer<AndroidAptValidityState> { @Override public void save(@NotNull DataOutput out, AndroidAptValidityState value) throws IOException { value.save(out); } @Override public AndroidAptValidityState read(@NotNull DataInput in) throws IOException { return new AndroidAptValidityState(in); } } }