/** * Copyright (C) Intersect 2012. * * This module contains Proprietary Information of Intersect, * and should be treated as Confidential. */ package au.org.intersect.exsite9.service.factory; import javax.persistence.EntityManagerFactory; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.services.AbstractServiceFactory; import org.eclipse.ui.services.IServiceLocator; import au.org.intersect.exsite9.dao.factory.FolderDAOFactory; import au.org.intersect.exsite9.dao.factory.MetadataAssociationDAOFactory; import au.org.intersect.exsite9.dao.factory.ProjectDAOFactory; import au.org.intersect.exsite9.dao.factory.ResearchFileDAOFactory; import au.org.intersect.exsite9.dao.factory.SubmissionPackageDAOFactory; import au.org.intersect.exsite9.service.ProjectService; /** * Factory responsible for creating {@link ProjectService} */ public final class ProjectServiceFactory extends AbstractServiceFactory { public ProjectServiceFactory() { } /** * @{inheritDoc} */ @Override @SuppressWarnings("rawtypes") public Object create(final Class serviceInterface, final IServiceLocator parentLocator, final IServiceLocator locator) { final EntityManagerFactory emf = (EntityManagerFactory) PlatformUI.getWorkbench().getService(EntityManagerFactory.class); final ProjectDAOFactory projectDAOFactory = new ProjectDAOFactory(); final FolderDAOFactory folderDAOFactory = new FolderDAOFactory(); final ResearchFileDAOFactory researchFileDAOFactory = new ResearchFileDAOFactory(); final MetadataAssociationDAOFactory metadataAssociationDAOFactory = new MetadataAssociationDAOFactory(); final SubmissionPackageDAOFactory submissionPackageDAOFactory = new SubmissionPackageDAOFactory(); return new ProjectService(emf, projectDAOFactory, folderDAOFactory, researchFileDAOFactory, metadataAssociationDAOFactory, submissionPackageDAOFactory); } }