package al.gov.asp.smc.osgi.kai.model.jpa.provider;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import org.eclipse.persistence.config.PersistenceUnitProperties;
import org.eclipse.persistence.jpa.osgi.PersistenceProvider;
import al.gov.asp.smc.osgi.kai.model.jpa.entites.Person;
import com.siemens.ct.pm.model.IPerson;
import com.siemens.ct.pm.model.IPersonManager;
public class PersonManager implements IPersonManager {
private EntityManagerFactory emf;
private EntityManager em;
private List<IPerson> persons = new ArrayList<IPerson>();
@SuppressWarnings({ "unchecked" })
public PersonManager() {
HashMap<String, ClassLoader> properties = new HashMap<String, ClassLoader>();
properties.put(PersistenceUnitProperties.CLASSLOADER, this.getClass()
.getClassLoader());
emf = new PersistenceProvider().createEntityManagerFactory(
"al.gov.asp.smc.osgi.kai.model.jpa", properties);
em = emf.createEntityManager();
List<Person> resultList = em.createQuery("select p from Person p").getResultList();
for (Person person : resultList) {
persons.add(new CPerson(person.getFirstname(), person.getLastname(), person.getCompany().getName()));
}
}
@Override
public List<IPerson> getPersons() {
return persons;
}
@Override
public void deletePerson(IPerson selectedPerson) {
persons.remove(selectedPerson);
em.getTransaction().begin();
em.createQuery("delete from Person p where p.firstName="+selectedPerson.getFirstName()+" and p.lastName="+selectedPerson.getLastName());
em.getTransaction().commit();
}
}