import java.util.ArrayList;import java.lang.StringBuffer;/** * Filmobjekt * * @Mathisen * @1.2 09.10.2006 */public class Film{ // Filminformasjon private String tittel; private int år; private int pris; private ArrayList skuespillerliste; /** * Konstruktør. * * @param tittel Filmtittel * @param år Produksjonsår * @param pris Utleiepris * @param skuespillere Semikolonskilt liste over skuespillere */ public Film(String tittel, int år, int pris, String skuespillere) { this.tittel = tittel; this.år = år; this.pris = pris; skuespillerliste = new ArrayList(); if (skuespillere != "") { legg_til_skuespillere(skuespillere); } } /** * Metode for å endre filmdetaljer.<br> * <br> * NB! ALL INFORMASJON OM FILMEN ALLEREDE I DATABASEN BLIR OVERSKREVET,<br> * SÅ FREMT DU IKKE TAR HENSYN TIL VALG AV PARAMETRE:<br> * <br> * For ingen endring, bruk:<br> * "ingen endring" for detaljene 'tittel' og 'skuespillere'<br> * -1 for detaljene 'år' og 'pris'<br> * <br> * For å legge til nye skuespillere bruk egen metode legg_til_skuespillere()<br> * * * @param tittel Filmtittel * @param år Produksjonsår * @param pris Utleiepris * @param skuespillere Semikolonskilt liste over skuespillere */ public void endre_detaljer(String tittel, int år, int pris, String skuespillere) { // endre tittelen if (tittel != "ingen endring") { this.tittel = tittel; } // endre produksjonsår kun hvis år er større enn 0 if (år > -1) { this.år = år; } // endre pris kun hvis pris er større enn -1 if (pris > -1) { this.pris = pris; } // endre skuespillerliste if (skuespillere != "ingen endring") { // tøm skuespillerliste og legg til nye skuespillerliste.clear(); legg_til_skuespillere(skuespillere); } } /** * Metode for utskrift av detaljer. */ public void utskrift() { System.out.print("*** LEIEFILM ***\nTittel: " + this.tittel + "\nProduksjonsår: " + this.år + "\nUtleiepris: " + this.pris + "kr.\n" + "\nSkuespillere:\n"); // skriv ut alle skuespillere for (int i = 0; i < skuespillerliste.size(); i++) { String dings = (String) skuespillerliste.get(i); System.out.println(dings); } System.out.print("****************\n"); } /** * Metode for å returnere filmtittel. * * @return Filmtittel */ public String tittel() { return this.tittel; } /** * Metode for å legge til skuespillere på en film. * * @param s_skuespillere Semikolonskilt liste over skuespillere */ public void legg_til_skuespillere(String s_skuespillere) { StringBuffer buffer = new StringBuffer(s_skuespillere.length()); StringBuffer skuespillere = new StringBuffer(s_skuespillere); // legg til et semikolon til slutt, i tilfelle det mangler. // koden legger uansett ikke til tomme skuespillernavn hvis vi ender opp med ;; på slutten skuespillere.append(";"); for (int teller = 0; teller < skuespillere.length(); teller++) { if (skuespillere.charAt(teller) == ';') { // ny skuespiller if (buffer.length() != 0) { // legg til i database // tøm buffer String dings = buffer.toString(); skuespillerliste.add(dings); buffer = new StringBuffer(s_skuespillere.length()); } } else { // legg til tegn i buffer buffer.append(skuespillere.charAt(teller)); } } } /** * Metode for å søke etter skuespiller i skuespillerlisten. * * @param skuespillernavn Navnet på skuespilleren * @return Sant om skuespilleren finnes i skuespillerlisten, usant hvis ikke. */ public boolean finn_skuespiller(String skuespillernavn) { for (int i = 0; i < skuespillerliste.size(); i++) { String prima_bacon = (String) skuespillerliste.get(i); if (skuespillernavn.equals(prima_bacon)) { return true; } } return false; }}