package org.molgenis.data.support;
import org.molgenis.data.Entity;
import org.molgenis.data.Writable;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Stream;
public abstract class AbstractWritable implements Writable
{
public enum EntityWriteMode
{
ENTITY_LABELS, ENTITY_IDS
}
public enum AttributeWriteMode
{
ATTRIBUTE_NAMES, ATTRIBUTE_LABELS
}
private EntityWriteMode entityWriteMode;
private AttributeWriteMode attributeWriteMode;
public EntityWriteMode getEntityWriteMode()
{
return entityWriteMode;
}
public void setEntityWriteMode(EntityWriteMode entityWriteMode)
{
this.entityWriteMode = entityWriteMode;
}
public AttributeWriteMode getAttributeWriteMode()
{
return attributeWriteMode;
}
public void setAttributeWriteMode(AttributeWriteMode attributeWriteMode)
{
this.attributeWriteMode = attributeWriteMode;
}
@Override
public Integer add(Stream<? extends Entity> entities)
{
AtomicInteger count = new AtomicInteger(0);
entities.forEach(entity ->
{
add(entity);
count.incrementAndGet();
});
return count.get();
}
}