package org.molgenis.gavin.job;
import org.molgenis.data.Entity;
import org.molgenis.data.annotation.core.RepositoryAnnotator;
import org.molgenis.data.annotation.core.entity.AnnotatorInfo;
import org.molgenis.data.annotation.core.resources.CmdLineAnnotatorSettingsConfigurer;
import org.molgenis.data.meta.model.Attribute;
import org.molgenis.data.meta.model.AttributeFactory;
import org.molgenis.data.meta.model.EntityType;
import java.util.Iterator;
import java.util.List;
import static java.util.Collections.emptyList;
public class FailingAnnotator implements RepositoryAnnotator
{
private final RuntimeException ex;
public FailingAnnotator(RuntimeException ex)
{
this.ex = ex;
}
@Override
public AnnotatorInfo getInfo()
{
return new AnnotatorInfo()
{
@Override
public Status getStatus()
{
return Status.BETA;
}
@Override
public Type getType()
{
return Type.UNKNOWN;
}
@Override
public String getCode()
{
return "FAIL";
}
@Override
public String getDescription()
{
return "Failing annotator for unit test purposes";
}
@Override
public List<Attribute> getOutputAttributes()
{
return emptyList();
}
};
}
@Override
public Iterator<Entity> annotate(Iterable<Entity> source, boolean updateMode)
{
return this.annotate(source);
}
@Override
public Iterator<Entity> annotate(Iterable<Entity> source)
{
throw ex;
}
@Override
public boolean annotationDataExists()
{
return true;
}
@Override
public Iterator<Entity> annotate(Iterator<Entity> source)
{
throw ex;
}
@Override
public List<Attribute> getOutputAttributes()
{
return emptyList();
}
@Override
public List<Attribute> getRequiredAttributes()
{
return emptyList();
}
@Override
public String canAnnotate(EntityType inputMetaData)
{
return null;
}
@Override
public String getSimpleName()
{
return "FAIL";
}
@Override
public String getFullName()
{
return "FAIL";
}
@Override
public CmdLineAnnotatorSettingsConfigurer getCmdLineAnnotatorSettingsConfigurer()
{
return annotationSourceFileName ->
{
};
}
@Override
public List<Attribute> createAnnotatorAttributes(AttributeFactory attributeFactory)
{
return emptyList();
}
}