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);
29  		}
30  		
31  		Director d1 = new Director(new Person("d1").setFirstName("John").setLastName("Landis")
32  				.setBirthDate(new GregorianCalendar(1950, Calendar.AUGUST, 3).getTime()));
33  		Director d2 = new Director(new Person("d2").setFirstName("Herbert").setLastName("Ross")
34  				.setBirthDate(new GregorianCalendar(1927, Calendar.MAY, 13).getTime()));
35  		Director d3 = new Director(new Person("d3").setFirstName("Ron").setLastName("Underwood"));
36  		Director d4 = new Director(new Person("d4").setFirstName("Ron").setLastName("Howard")
37  				.setBirthDate(new GregorianCalendar(1954, Calendar.MARCH, 1).getTime()));
38  		Director d5 = new Director(new Person("d5").setFirstName("Barry").setLastName("Levinson")
39  				.setBirthDate(new GregorianCalendar(1942, Calendar.APRIL, 6).getTime()));
40  		for (Director d: new Director[]{d1, d2, d3, d4, d5}) {
41  			em.persist(d);
42  		}
43  		
44  		
45  		Movie m1 = new Movie("m1").setTitle("Animal House").setReleaseDate(new GregorianCalendar(1978, Calendar.JUNE, 1).getTime())
46  				.setDirector(d1)
47  				.setRating(MovieRating.R)
48  				.setMinutes(60+49)
49  				.addGenres("Comedy")
50  				.addRole(
51  					new MovieRole("Chip Diller").setActor(a1),
52  					new MovieRole("John Blutarsky").setActor(a2),
53  					new MovieRole("Eric Stratton").setActor(a3)
54  					);
55  
56  		Movie m2 = new Movie("m2").setTitle("Footloose").setReleaseDate(new GregorianCalendar(1984, Calendar.FEBRUARY, 17).getTime())
57  				.setDirector(d2)
58  				.setRating(MovieRating.PG)
59  				.setMinutes(60+47)
60  				.addGenres("Drama")
61  				.addRole(
62  					new MovieRole("Ren McCormack").setActor(a1)
63  					);
64  
65  		Movie m3 = new Movie("m3").setTitle("Tremors").setReleaseDate(new GregorianCalendar(1990, Calendar.JANUARY, 19).getTime())
66  				.setDirector(d3)
67  				.setRating(MovieRating.PG13)
68  				.setMinutes(60+36)
69  				.addGenres("Horror")
70  				.addRole(
71  					new MovieRole("Valentine McKee").setActor(a1)
72  					);
73  
74  		Movie m4 = new Movie("m4").setTitle("Apollo 13").setReleaseDate(new GregorianCalendar(1995, Calendar.JUNE, 30).getTime())
75  				.setDirector(d4)
76  				.setRating(MovieRating.PG)
77  				.setMinutes((2*60)+20)
78  				.addGenres("Docudrama", "Historical Film", "Space Adventure", "Drama")
79  				.addRole(
80  					new MovieRole("Jack Swigert").setActor(a1)
81  					);
82  
83  		Movie m5 = new Movie("m5").setTitle("Sleepers").setReleaseDate(new GregorianCalendar(1996, Calendar.OCTOBER, 18).getTime())
84  				.setDirector(d5)
85  				.setRating(MovieRating.R)
86  				.setMinutes((2*60)+32)
87  				.addGenres("Buddy Film", "Courtroom Drama", "Crime Drama", "Reunion Films", "Crime", "Drama")	
88  				.addRole(
89  					new MovieRole("Sean Nokes").setActor(a1),
90  					new MovieRole("Danny Snyder").setActor(a4)
91  					);
92  
93  		Movie m6 = new Movie("m6").setTitle("Wag The Dog").setReleaseDate(new GregorianCalendar(1997, Calendar.DECEMBER, 25).getTime())
94  				.setDirector(d5)
95  				.setRating(MovieRating.R)
96  				.setMinutes((1*60)+37)
97  				.addGenres("Media Satire", "Political Satire", "Comedy")
98  				.addRole(
99  						new MovieRole("Stanley Motss").setActor(a4),
100 						new MovieRole("Conrad Brean").setActor(a5)
101 					);	
102 
103 		Movie m7 = new Movie("m7").setTitle("Diner").setReleaseDate(new GregorianCalendar(1982, Calendar.APRIL, 2).getTime())
104 				.setDirector(d5)
105 				.setRating(MovieRating.R)
106 				.setMinutes((1*60)+50)
107 				.addGenres("Coming-of-Age", "Ensemble Film", "Reunion Films", "Comedy Drama")
108 				.addRole(
109 					new MovieRole("Timothy Fenwick, Jr.").setActor(a1)
110 					);
111 		
112 		for (Movie m: new Movie[]{m1, m2, m3, m4, m5, m6, m7}) {
113 			em.persist(m);
114 		}
115 	}
116 }