blob: 250cd590488ac304563aee4383e71666c3bf390e [file] [log] [blame]
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);
}
}