// FactoryImpl.java

package com.corej2eepatterns.business.impl;

import com.corej2eepatterns.business.hr.*;
import javax.jdo.PersistenceManager;

/**
 * @author  Craig Russell
 */
public class FactoryImpl implements Factory {
  PersistenceManager pm;

  /** tworzy now instancj FactoryImpl */
  public FactoryImpl(PersistenceManager pm) {
    this.pm = pm;
  }

  PersistenceManager getPersistenceManager() {
    return pm;
  }

  public Department createDepartment(String name) {
    return new DepartmentImpl(name);
  }

  public FullTimeEmployee createFullTimeEmployee(
      long id, String firstName, String lastName) {
    return new FullTimeEmployeeImpl(
        id, firstName, lastName);
  }

  public PartTimeEmployee createPartTimeEmployee(
      long id, String firstName, String lastName) {
    return new PartTimeEmployeeImpl(
        id, firstName, lastName);
  }

  public Project createProject(String name) {
    return new ProjectImpl(name);
  }

  public Queries getQueries() {
    return new QueriesImpl(this);
  }

  public void persistObjects(Object[] objects) {
    pm.makePersistentAll(objects);
  }

  public void persistObject(Object object) {
    pm.makePersistent(object);
  }
}