package org.jetbrains.jps.android; import com.intellij.util.containers.HashSet; import org.jetbrains.annotations.NotNull; import org.jetbrains.jps.incremental.storage.ValidityState; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; import java.util.Collection; import java.util.Set; /** * @author Eugene.Kudelevsky */ public class AndroidBuildConfigState implements ValidityState { private final String myPackage; private final Set<String> myLibPackages; private final boolean myDebug; public AndroidBuildConfigState(@NotNull String aPackage, @NotNull Collection<String> libPackages, boolean debug) { myPackage = aPackage; myDebug = debug; myLibPackages = new HashSet<String>(libPackages); } public AndroidBuildConfigState(@NotNull DataInput in) throws IOException { myPackage = in.readUTF(); final int libPackagesCount = in.readInt(); myLibPackages = new HashSet<String>(libPackagesCount); for (int i = 0; i < libPackagesCount; i++) { myLibPackages.add(in.readUTF()); } myDebug = in.readBoolean(); } @Override public boolean equalsTo(ValidityState otherState) { if (!(otherState instanceof AndroidBuildConfigState)) { return false; } final AndroidBuildConfigState otherState1 = (AndroidBuildConfigState)otherState; return otherState1.myDebug == myDebug && otherState1.myPackage.equals(myPackage) && otherState1.myLibPackages.equals(myLibPackages); } @Override public void save(DataOutput out) throws IOException { out.writeUTF(myPackage); out.writeInt(myLibPackages.size()); for (String libPackage : myLibPackages) { out.writeUTF(libPackage); } out.writeBoolean(myDebug); } }