import java.util.*;
import java.io.*;
public class Cinema
{
float cost;
String Title;
String mrPG="PG";
String mrA="A";
Movie movieNew = new Movie();
//MovieRating class
MovieRating mrating = new MovieRating();
private ArrayList<Human> hm = new ArrayList();
public Cinema()
{
}
public Cinema (String mtitle, float pounds)
{
this.Title=mtitle;
this.cost = pounds;
}
public float getcost (int people)
{
return cost * people;
}
/**
* Method check that the movie title and rating have been set,
* if not throw an exception.
*/
public void setMovie(Movie movieNew) throws IOException
{
try
{
if(movieNew.getTitle()!=null && movieNew.getRating()!=null)
{
System.out.println("The movie is called " +movieNew.getTitle()+
" and is rated " +movieNew.getRating()+ ".");
}
else
{
System.out.println("Movie title and rating not set");
}
}
catch(Exception e)
{
System.out.println("Movie properties not set.");
}
}
/*
* this method first checks if the movie properties are set.
*/
public void showMovie() throws IOException
{
try
{
if(movieNew.getTitle()!=null)
{
System.out.println(movieNew.getTitle()+" Now Showing"); }
else
{
System.out.println("Show has no Movie title.");
}
}
catch(Exception e)
{
System.out.println("Check the movie properties.");
}
finally
{
System.out.println("Thanks for coming.");
}
}
public void addMovieGoers(Human h)
{
Human a = new Adult("Joe",43);
Human b = new Adult("Sue",39);
Human c = new Adult("Tracy",20);
Human d = new Child("Sammy",17);
Human e = new Child("Julie",12);
Human f = new Child("Mona",6);
hm.add(a);hm.add(b);hm.add(c);hm.add(d);
hm.add(e);hm.add(f);
hm.trimToSize();
String toPrint = "";
try
{
if(movieNew.getRating()!=null && movieNew.getTitle()!=null)
{
if(mrPG.equals(movieNew.getRating())) //movies rated PG
{
System.out.println("The following can only watch under parental guidance:");
for(int i = 0; i < hm.size(); i++)
{
Human test = (Human)hm.get(i);
if ( test instanceof Child)
{
if(toPrint.equals(""))
{
System.out.println(test);
}
else
{
System.out.println("Children: " + toPrint);
}
}
}
}
else if(mrA.equals(movieNew.getRating())) //movies rated Adult
{
System.out.println("This movie is rated A");
for ( int i = 0; i < hm.size(); i++)
{
Human test = (Human)hm.get(i);
if ( test instanceof Adult)
{
if(toPrint.equals(""))
{
System.out.println(test);
}
else
{
System.out.println("Adults: " + toPrint);
}
}
}
}
else //Movies rated G
{
System.out.println("This is movie rated G. So all can watch"+
": ");
for ( int i = 0; i < hm.size(); i++)
{
System.out.println(i);
}
}
}
}
catch(Exception x)
{
System.out.println("Movie properties are missing. Please set the Title"+
" and rating first.");
}
}
public static void main(String args[]) throws IOException
{
Cinema cn = new Cinema();
Human h = new Human();
//instantiating and setting properties to the movie
Movie movieNew = new Movie();
movieNew.setName("Comedy");
movieNew.setRating("PG");
movieNew.setTitle("Mr Bin");
System.out.println("Setting Movie properties:");
cn.setMovie(movieNew);
System.out.println("Movie Goers are: ");
cn.addMovieGoers(h);
}
}