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());
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 }