package se.cambio.cds.util;
import se.cambio.cds.controller.session.data.Guides;
import se.cambio.cm.model.archetype.dto.ArchetypeDTO;
import se.cambio.cm.model.guide.dto.GuideDTO;
import se.cambio.cm.model.template.dto.TemplateDTO;
import se.cambio.cm.model.util.CMElement;
import se.cambio.openehr.controller.session.data.ArchetypeManager;
import se.cambio.openehr.util.exceptions.InternalErrorException;
public class CMElementProcessor<E extends CMElement> {
ArchetypeManager archetypeManager;
Guides guides;
public CMElementProcessor() {
}
public void process(E cmElement) throws InternalErrorException {
if (cmElement instanceof ArchetypeDTO) {
getArchetypeManager().getArchetypes().processArchetype((ArchetypeDTO)cmElement);
} else if (cmElement instanceof TemplateDTO) {
getArchetypeManager().getTemplates().processTemplate((TemplateDTO) cmElement);
} else if (cmElement instanceof GuideDTO) {
getGuides().processGuide((GuideDTO)cmElement);
}
}
public ArchetypeManager getArchetypeManager() {
if (archetypeManager == null) {
archetypeManager = new ArchetypeManager();
}
return archetypeManager;
}
public Guides getGuides() {
if (guides == null) {
guides = new Guides();
}
return guides;
}
}