package org.molgenis.questionnaires;
import org.molgenis.data.meta.SystemEntityType;
import org.molgenis.security.owned.OwnedEntityType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import static java.util.Objects.requireNonNull;
import static org.molgenis.data.meta.AttributeType.ENUM;
import static org.molgenis.data.meta.model.Package.PACKAGE_SEPARATOR;
import static org.molgenis.data.system.model.RootSystemPackage.PACKAGE_SYSTEM;
/**
* Base EntityType for 'questionnaire' entities
*/
@Component
public class QuestionnaireMetaData extends SystemEntityType
{
private static final String SIMPLE_NAME = "Questionnaire";
public static final String QUESTIONNAIRE = PACKAGE_SYSTEM + PACKAGE_SEPARATOR + SIMPLE_NAME;
public static final String ATTR_STATUS = "status";
private final OwnedEntityType ownedEntityType;
@Autowired
QuestionnaireMetaData(OwnedEntityType ownedEntityType)
{
super(SIMPLE_NAME, PACKAGE_SYSTEM);
this.ownedEntityType = requireNonNull(ownedEntityType);
}
@Override
public void init()
{
setLabel("Questionnaire");
setAbstract(true);
setExtends(ownedEntityType);
List<String> enumOptions = new ArrayList<>();
for (QuestionnaireStatus questionnaireStatus : QuestionnaireStatus.values())
{
enumOptions.add(questionnaireStatus.toString());
}
addAttribute(ATTR_STATUS).setDataType(ENUM).setEnumOptions(enumOptions).setVisible(false).setNillable(false);
}
}