blob: 482452744d6115cded9f256cb2b359ca77fa5d7c [file] [log] [blame]
/**
*
*/
package org.apache.continuum.store.jpa;
import org.apache.continuum.model.project.Project;
import org.apache.continuum.model.project.ProjectGroup;
import org.apache.continuum.model.project.ProjectNotifier;
import org.apache.continuum.store.api.Store;
/**
* Bean factory that is used by Spring container to create and return instances of {@link Store} implementations.
*
* @author <a href='mailto:rahul.thakur.xdev@gmail.com'>Rahul Thakur</a>
* @version $Id$
* @since 1.2
*/
public class JpaStoreFactory
{
/**
* Store instance that services executes requests on underlying store for {@link Project} entities.
*/
private final JpaStore<Project, ProjectQuery<Project>> JPA_PROJECT_STORE =
new JpaStore<Project, ProjectQuery<Project>>();
/**
* Store instance that services executes requests on underlying store for {@link ProjectGroup} entities.
*/
private final JpaStore<ProjectGroup, ProjectGroupQuery<ProjectGroup>> JPA_PROJECT_GROUP_STORE =
new JpaStore<ProjectGroup, ProjectGroupQuery<ProjectGroup>>();
/**
* Store instance that services executes requests on underlying store for {@link ProjectNotifier} entities.
*/
private final JpaStore<ProjectNotifier, ProjectNotifierQuery<ProjectNotifier>> JPA_PROJECT_NOTIFIER_STORE =
new JpaStore<ProjectNotifier, ProjectNotifierQuery<ProjectNotifier>>();
/**
* Returns a {@link Store} instance to service {@link Project} Entity.
*
* @return a {@link Store} instance to service {@link Project} Entity
*/
public Store<Project, ProjectQuery<Project>> createProjectGroupStoreInstance()
{
return JPA_PROJECT_STORE;
}
/**
* Returns a {@link Store} instance to service {@link ProjectGroup} Entity.
*
* @return a {@link Store} instance to service {@link ProjectGroup} Entity.
*/
public Store<ProjectGroup, ProjectGroupQuery<ProjectGroup>> createProjectStoreInstance()
{
return JPA_PROJECT_GROUP_STORE;
}
/**
* Returns a {@link Store} instance to service {@link ProjectNotifier} Entity.
*
* @return a {@link Store} instance to service {@link ProjectNotifier} Entity.
*/
public Store<ProjectNotifier, ProjectNotifierQuery<ProjectNotifier>> createProjectNotifierStoreInstance()
{
return JPA_PROJECT_NOTIFIER_STORE;
}
}