package org.molgenis.data.annotation.core.entity; import org.molgenis.data.Entity; import org.molgenis.data.annotation.core.resources.CmdLineAnnotatorSettingsConfigurer; import org.molgenis.data.meta.model.Attribute; import java.util.List; /** * Simple interface to implement for fine-grained annotators. * * @author fkelpin */ public interface EntityAnnotator extends Annotator { /** * Annotates a single entity. * * @param sourceEntity the entity to annotate * @param updateMode boolean indicating if existing annotations should be updated * @return {@link Iterable} for the annotated data */ Iterable<Entity> annotateEntity(Entity sourceEntity, boolean updateMode); /** * @return the {@link List< Attribute >} that must be present in the source entity. */ List<Attribute> getRequiredAttributes(); /** * @return Indication if the required source repository is present in the dataService */ boolean sourceExists(); CmdLineAnnotatorSettingsConfigurer getCmdLineAnnotatorSettingsConfigurer(); }