package fr.adrienbrault.idea.symfony2plugin.stubs.indexes.externalizer;
import com.intellij.util.io.DataExternalizer;
import com.intellij.util.io.EnumeratorStringDescriptor;
import gnu.trove.THashSet;
import org.jetbrains.annotations.NotNull;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import java.util.Iterator;
import java.util.Set;
/**
* @author Daniel Espendiller <daniel@espendiller.net>
*
* @see com.jetbrains.php.lang.psi.stubs.indexes.PhpTraitUsageIndex
* @see com.jetbrains.php.lang.psi.stubs.indexes.StringSetDataExternalizer
*/
public class StringSetDataExternalizer implements DataExternalizer<Set<String>> {
public synchronized void save(@NotNull DataOutput out, Set<String> value) throws IOException {
out.writeInt(value.size());
Iterator var = value.iterator();
while(var.hasNext()) {
String s = (String)var.next();
EnumeratorStringDescriptor.INSTANCE.save(out, s);
}
}
public synchronized Set<String> read(@NotNull DataInput in) throws IOException {
Set<String> set = new THashSet<>();
for(int r = in.readInt(); r > 0; --r) {
set.add(EnumeratorStringDescriptor.INSTANCE.read(in));
}
return set;
}
}