package org.molgenis.data.annotation.core.entity; import org.molgenis.data.meta.model.Attribute; import org.molgenis.data.meta.model.AttributeFactory; import java.util.List; /** * An Annotator. * <p> * Annotators enrich source data with extra attributes. * * @author fkelpin */ public interface Annotator { /** * @return {@link AnnotatorInfo} for the {@link Annotator} */ AnnotatorInfo getInfo(); /** * Be aware that several calls to this function will give you the same auto identifiers every time * * @return List of {@link Attribute} for the attributes that get added by this {@link Annotator} */ List<Attribute> getAnnotatorAttributes(); /** * Use this method for the actual annotation process, to ensure that unique * identifiers by creating a new set of attributes everytime an annotator us executed * * @param attributeFactory * @return */ List<Attribute> createAnnotatorAttributes(AttributeFactory attributeFactory); }