package gov.va.vinci.dart.service;

import gov.va.vinci.dart.db.*;
import gov.va.vinci.dart.db.util.ISessionManager;
import gov.va.vinci.dart.mail.MailManager;
import gov.va.vinci.dart.usr.UserManager;
import gov.va.vinci.dart.wf2.WorkflowResolver;

public interface DataLayerFactory {

	UserManager getUserManager();
	MailManager getMailManager();
	ISessionManager getSessionManager();
	WorkflowResolver getWorkflowResolver();
	
	ActivityDAO getActivityDAO();
	CommentDAO getCommentDAO();
	DartRequestDAO getDartRequestDAO();
	PreparatoryRequestDAO getPreparatoryRequestDAO();
	DataSourceDAO getDataSourceDAO();
	DataSourceDisplayHeaderDAO getDataSourceDisplayHeaderDAO();
	DocumentReviewNoteDAO getDocumentReviewNoteDAO();
	DocumentReviewStatusDAO getDocumentReviewStatusDAO();
	DocumentTemplateDAO getDocumentTemplateDAO();
	EventDAO getEventDAO();
	EventTypeDAO getEventTypeDAO();
	FacilityDAO getFacilityDAO();
	GroupDAO getGroupDAO();
	GroupTaskDAO getGroupTaskDAO();
	LocationDAO getLocationDAO();
	NarrativeDAO getNarrativeDAO();
	OperationalRequestDAO getOperationalRequestDAO();
	OperationalStudyDAO getOperationalStudyDAO();
	PersonDAO getPersonDAO(); 
	ParticipantDAO getParticipantDAO(); 
	PersonTaskDAO getPersonTaskDAO();
	RequestAdminLocationDocumentDAO getRequestAdminLocationDocumentDAO();
	RequestAdminParticipantDocumentDAO getRequestAdminParticipantDocumentDAO();
	RequestLocationDocumentDAO getRequestLocationDocumentDAO();
	RequestParticipantDocumentDAO getRequestParticipantDocumentDAO();
	ReviewTemplateDAO getReviewTemplateDAO(); 
	ReviewDAO getReviewDAO(); 
	RequestDAO getRequestDAO(); 
	ResearchStudyDAO getResearchStudyDAO(); 
	PreparatoryStudyDAO getPreparatoryStudyDAO(); 
	RoleDAO getRoleDAO(); 
	SoftwareRequestDAO getSoftwareRequestDAO(); 
	TaskDAO getTaskDAO();
	RequestWorkflowDAO getRequestWorkflowDAO();
	WorkflowTypeDAO getWorkflowTypeDAO();
	WorkflowTemplateDAO getWorkflowTemplateDAO();
}
