package org.springframework.samples.petclinic.prevayler;
import java.util.Date;
import org.springframework.samples.petclinic.Owner;
import org.springframework.samples.petclinic.Pet;
import org.springframework.samples.petclinic.PetType;
import org.springframework.samples.petclinic.Specialty;
import org.springframework.samples.petclinic.Vet;
import org.springmodules.prevayler.callback.PrevaylerCallback;
import org.springmodules.prevayler.system.PrevalentSystem;
/**
*
* @author Sergio Bossa
*/
public class InitClinicCallback implements PrevaylerCallback {
public Object doInTransaction(PrevalentSystem system) {
if (system.get(Owner.class).isEmpty() && system.get(Pet.class).isEmpty() && system.get(Vet.class).isEmpty()) {
this.initOwnersAndPets(system);
this.initVets(system);
}
return null;
}
private void initOwnersAndPets(PrevalentSystem system) {
PetType pt1 = new PetType();
PetType pt2 = new PetType();
pt1.setName("Cat");
pt2.setName("Dog");
pt1 = (PetType) system.save(pt1);
pt2 = (PetType) system.save(pt2);
Pet p1 = new Pet();
Pet p2 = new Pet();
p1.setName("Jack");
p1.setBirthDate(new Date());
p1.setType(pt1);
p2.setName("Camilla");
p2.setBirthDate(new Date());
p2.setType(pt2);
p1 = (Pet) system.save(p1);
p2 = (Pet) system.save(p2);
Owner owner = new Owner();
owner.setFirstName("Tom");
owner.setLastName("Cruise");
owner.addPet(p1);
owner.addPet(p2);
owner = (Owner) system.save(owner);
}
private void initVets(PrevalentSystem system) {
Specialty s1 = new Specialty();
Specialty s2 = new Specialty();
s1.setName("Surgery");
s2.setName("Dentist");
s1 = (Specialty) system.save(s1);
s2 = (Specialty) system.save(s2);
Vet v1 = new Vet();
Vet v2 = new Vet();
v1.setFirstName("Robert");
v1.setLastName("DeNiro");
v1.addSpecialty(s1);
v2.setFirstName("Al");
v2.setLastName("Pacino");
v2.addSpecialty(s2);
v1 = (Vet) system.save(v1);
v2 = (Vet) system.save(v2);
}
}