View Javadoc
1   package myorg.queryex;
2   
3   import java.util.Calendar;
4   import java.util.GregorianCalendar;
5   
6   import javax.persistence.EntityManager;
7   
8   public class MovieFactory {
9   	private EntityManager em;
10  	
11  	public MovieFactory setEntityManager(EntityManager em) {
12  		this.em = em;
13  		return this;
14  	}
15  	
16  	public void populate() {
17  		Actor a1 = new Actor(new Person("p1").setFirstName("Kevin").setLastName("Bacon")
18  				.setBirthDate(new GregorianCalendar(1958, Calendar.JULY, 8).getTime()));
19  		Actor a2 = new Actor(new Person("p2").setFirstName("John").setLastName("Belushi")
20  				.setBirthDate(new GregorianCalendar(1949, Calendar.JANUARY, 24).getTime()));		
21  		Actor a3 = new Actor(new Person("p3").setFirstName("Tim").setLastName("Matheson")
22  				.setBirthDate(new GregorianCalendar(1947, Calendar.DECEMBER, 31).getTime()));
23  		Actor a4 = new Actor(new Person("p4").setFirstName("Dustin").setLastName("Hoffman")
24  				.setBirthDate(new GregorianCalendar(1937, Calendar.AUGUST, 8).getTime()));
25  		Actor a5 = new Actor(new Person("p5").setFirstName("Robert").setLastName("De Niro")
26  				.setBirthDate(new GregorianCalendar(1943, Calendar.AUGUST, 17).getTime()));
27  		for (Actor a: new Actor[]{a1, a2, a3, a4, a5}) {
28  	        em.persist(a.getPerson()); //cascadeType.PERSIST not being followed - HHH-6999?
29  			em.persist(a);
30  		}
31  		
32  		Director d1 = new Director(new Person("d1").setFirstName("John").setLastName("Landis")
33  				.setBirthDate(new GregorianCalendar(1950, Calendar.AUGUST, 3).getTime()));
34  		Director d2 = new Director(new Person("d2").setFirstName("Herbert").setLastName("Ross")
35  				.setBirthDate(new GregorianCalendar(1927, Calendar.MAY, 13).getTime()));
36  		Director d3 = new Director(new Person("d3").setFirstName("Ron").setLastName("Underwood"));
37  		Director d4 = new Director(new Person("d4").setFirstName("Ron").setLastName("Howard")
38  				.setBirthDate(new GregorianCalendar(1954, Calendar.MARCH, 1).getTime()));
39  		Director d5 = new Director(new Person("d5").setFirstName("Barry").setLastName("Levinson")
40  				.setBirthDate(new GregorianCalendar(1942, Calendar.APRIL, 6).getTime()));
41  		for (Director d: new Director[]{d1, d2, d3, d4, d5}) {
42              em.persist(d.getPerson());
43  			em.persist(d);
44  		}
45  		
46  		Movie m1 = new Movie("m1").setTitle("Animal House").setReleaseDate(new GregorianCalendar(1978, Calendar.JUNE, 1).getTime())
47  				.setDirector(d1)
48  				.setRating(MovieRating.R)
49  				.setMinutes(60+49)
50  				.addGenres("Comedy")
51  				.addRole(
52  					new MovieRole("Chip Diller").setActor(a1),
53  					new MovieRole("John Blutarsky").setActor(a2),
54  					new MovieRole("Eric Stratton").setActor(a3)
55  					);
56  
57  		Movie m2 = new Movie("m2").setTitle("Footloose").setReleaseDate(new GregorianCalendar(1984, Calendar.FEBRUARY, 17).getTime())
58  				.setDirector(d2)
59  				.setRating(MovieRating.PG)
60  				.setMinutes(60+47)
61  				.addGenres("Drama")
62  				.addRole(
63  					new MovieRole("Ren McCormack").setActor(a1)
64  					);
65  
66  		Movie m3 = new Movie("m3").setTitle("Tremors").setReleaseDate(new GregorianCalendar(1990, Calendar.JANUARY, 19).getTime())
67  				.setDirector(d3)
68  				.setRating(MovieRating.PG13)
69  				.setMinutes(60+36)
70  				.addGenres("Horror")
71  				.addRole(
72  					new MovieRole("Valentine McKee").setActor(a1)
73  					);
74  
75  		Movie m4 = new Movie("m4").setTitle("Apollo 13").setReleaseDate(new GregorianCalendar(1995, Calendar.JUNE, 30).getTime())
76  				.setDirector(d4)
77  				.setRating(MovieRating.PG)
78  				.setMinutes((2*60)+20)
79  				.addGenres("Docudrama", "Historical Film", "Space Adventure", "Drama")
80  				.addRole(
81  					new MovieRole("Jack Swigert").setActor(a1)
82  					);
83  
84  		Movie m5 = new Movie("m5").setTitle("Sleepers").setReleaseDate(new GregorianCalendar(1996, Calendar.OCTOBER, 18).getTime())
85  				.setDirector(d5)
86  				.setRating(MovieRating.R)
87  				.setMinutes((2*60)+32)
88  				.addGenres("Buddy Film", "Courtroom Drama", "Crime Drama", "Reunion Films", "Crime", "Drama")	
89  				.addRole(
90  					new MovieRole("Sean Nokes").setActor(a1),
91  					new MovieRole("Danny Snyder").setActor(a4)
92  					);
93  
94  		Movie m6 = new Movie("m6").setTitle("Wag The Dog").setReleaseDate(new GregorianCalendar(1997, Calendar.DECEMBER, 25).getTime())
95  				.setDirector(d5)
96  				.setRating(MovieRating.R)
97  				.setMinutes((1*60)+37)
98  				.addGenres("Media Satire", "Political Satire", "Comedy")
99  				.addRole(
100 						new MovieRole("Stanley Motss").setActor(a4),
101 						new MovieRole("Conrad Brean").setActor(a5)
102 					);	
103 
104 		Movie m7 = new Movie("m7").setTitle("Diner").setReleaseDate(new GregorianCalendar(1982, Calendar.APRIL, 2).getTime())
105 				.setDirector(d5)
106 				.setRating(MovieRating.R)
107 				.setMinutes((1*60)+50)
108 				.addGenres("Coming-of-Age", "Ensemble Film", "Reunion Films", "Comedy Drama")
109 				.addRole(
110 					new MovieRole("Timothy Fenwick, Jr.").setActor(a1)
111 					);
112 		
113 		for (Movie m: new Movie[]{m1, m2, m3, m4, m5, m6, m7}) {
114 			em.persist(m);
115 		}
116 	}
117 }