package fr.adrienbrault.idea.symfony2plugin.stubs.indexes.externalizer;
import com.intellij.util.io.DataExternalizer;
import com.intellij.util.io.EnumeratorStringDescriptor;
import org.jetbrains.annotations.NotNull;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
* @author Daniel Espendiller <daniel@espendiller.net>
* @see com.jetbrains.php.lang.psi.stubs.indexes.PhpTraitUsageIndex
* @deprecated because of results into "violates equals / hashCode"
*/
public class ArrayDataExternalizer implements DataExternalizer<String[]> {
private final EnumeratorStringDescriptor myStringEnumerator = new EnumeratorStringDescriptor();
public synchronized void save(@NotNull DataOutput out, String[] values) throws IOException {
out.writeInt(values.length);
for(String value: values) {
this.myStringEnumerator.save(out, value != null ? value : "");
}
}
public synchronized String[] read(@NotNull DataInput in) throws IOException {
List<String> list = new ArrayList<>();
int r = in.readInt();
while (r > 0) {
list.add(this.myStringEnumerator.read(in));
r--;
}
return list.toArray(new String[list.size()]);
}
}