funktionen hinzügefügt und einfache ui erstellt fehlt ausleihen und spezifische funktionen wie zaheln usw.
parent
6e0ca44113
commit
324b2efda9
|
@ -0,0 +1,4 @@
|
||||||
|
public class Aausleihe {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -1,19 +1,23 @@
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.Calendar;
|
||||||
|
|
||||||
abstract class Benutzer {
|
class Benutzer {
|
||||||
private String name;
|
private String name;
|
||||||
private String nachname;
|
private String nachname;
|
||||||
private int kundennummer;
|
private int kundennummer;
|
||||||
private Date date;
|
private Date date;
|
||||||
Benutzer(String name,String nachname,int kundennummer,Date date){
|
|
||||||
this.name=name;
|
|
||||||
this.nachname=nachname;
|
|
||||||
this.date=date;
|
|
||||||
this.kundennummer=kundennummer;
|
|
||||||
|
|
||||||
|
|
||||||
|
// Konstruktor
|
||||||
|
Benutzer(String name, String nachname, int kundennummer, Date date) {
|
||||||
|
this.name = name;
|
||||||
|
this.nachname = nachname;
|
||||||
|
this.date = date;
|
||||||
|
this.kundennummer = kundennummer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Getter-Methoden
|
||||||
public String getNachname() {
|
public String getNachname() {
|
||||||
return nachname;
|
return nachname;
|
||||||
}
|
}
|
||||||
|
@ -29,20 +33,33 @@ abstract class Benutzer {
|
||||||
public int getKundennummer() {
|
public int getKundennummer() {
|
||||||
return kundennummer;
|
return kundennummer;
|
||||||
}
|
}
|
||||||
public static class Erwachsen extends Benutzer{
|
|
||||||
Erwachsen(String name,String nachname,int kundennummer,Date date){
|
|
||||||
super(name,nachname,kundennummer,date);
|
|
||||||
|
|
||||||
|
// Methode zum Extrahieren des Jahres aus dem Date
|
||||||
|
public static int getJahr(Benutzer benutzer) {
|
||||||
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
calendar.setTime(benutzer.getDate()); // Setzt das Date in das Calendar-Objekt
|
||||||
|
return calendar.get(Calendar.YEAR); // Gibt das Jahr aus dem Calendar-Objekt zurück
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Die Unterklassen Erwachsen und Kinder bleiben unverändert
|
||||||
|
public static class Erwachsen extends Benutzer {
|
||||||
|
Erwachsen(String name, String nachname, int kundennummer, Date date) {
|
||||||
|
super(name, nachname, kundennummer, date);
|
||||||
}
|
}
|
||||||
public static class Kinder extends Benutzer{
|
|
||||||
Kinder(String name,String nachname,int kundennummer,Date date){
|
|
||||||
super(name,nachname,kundennummer,date);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class Kinder extends Benutzer {
|
||||||
|
Kinder(String name, String nachname, int kundennummer, Date date) {
|
||||||
|
super(name, nachname, kundennummer, date);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static class Admin extends Benutzer {
|
||||||
|
Admin(String name, String nachname, int kundennummer, Date date) {
|
||||||
|
super(name, nachname, kundennummer, date);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
20
Main.java
20
Main.java
|
@ -1,2 +1,22 @@
|
||||||
public class Main {
|
public class Main {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Creator creator = new Creator();
|
||||||
|
Verwaltung verwaltung = new Verwaltung();
|
||||||
|
|
||||||
|
// Medienobjekte hinzufügen
|
||||||
|
verwaltung.mediensListe.add(creator.factoryMedien("Java Programmierung", "Max Mustermann", 1, "buch", 2020));
|
||||||
|
verwaltung.mediensListe.add(creator.factoryMedien("Datenstrukturen", "Julia Schmidt", 2, "buch", 2018));
|
||||||
|
verwaltung.mediensListe.add(creator.factoryMedien("Inception", "Christopher Nolan", 3, "dvd", 0));
|
||||||
|
verwaltung.mediensListe.add(creator.factoryMedien("Matrix", "Wachowski", 4, "dvd", 0));
|
||||||
|
verwaltung.mediensListe.add(creator.factoryMedien("Thriller", "", 5, "cd", 0));
|
||||||
|
verwaltung.mediensListe.add(creator.factoryMedien("Back in Black", "", 6, "cd", 0));
|
||||||
|
verwaltung.mediensListe.add(creator.factoryMedien("Schach", "", 7, "sb", 0));
|
||||||
|
verwaltung.mediensListe.add(creator.factoryMedien("Monopoly", "", 8, "sb", 0));
|
||||||
|
verwaltung.mediensListe.add(creator.factoryMedien("Minecraft", "Mojang", 9, "videospiel", 0));
|
||||||
|
verwaltung.mediensListe.add(creator.factoryMedien("The Witcher 3", "CD Projekt", 10, "videospiel", 0));
|
||||||
|
|
||||||
|
// Ui mit der Verwaltung-Instanz initialisieren
|
||||||
|
Ui ui = new Ui(verwaltung);
|
||||||
|
ui.anmeldung();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
159
Medien.java
159
Medien.java
|
@ -1,17 +1,27 @@
|
||||||
public abstract class Medien {
|
// Interface für Medien, die ausgeliehen werden können
|
||||||
// Eigenschaften der Medien-Klasse
|
interface Ausleihbar {
|
||||||
|
int getMaxVerlängerungen(); // Gibt die maximale Anzahl an Verlängerungen zurück
|
||||||
|
boolean kannVerlängern(); // Prüft, ob das Medium verlängerbar ist
|
||||||
|
boolean verlängern(); // Verlängert das Medium, wenn möglich
|
||||||
|
}
|
||||||
|
|
||||||
|
// Abstrakte Basisklasse für alle Medien
|
||||||
|
public abstract class Medien implements Ausleihbar {
|
||||||
protected String name;
|
protected String name;
|
||||||
protected String autor;
|
|
||||||
protected int id;
|
protected int id;
|
||||||
protected boolean verlängerung; // Standardwert für alle Medien
|
protected int frist; // Standard-Ausleihfrist in Wochen
|
||||||
protected int frist; // Diese Variable wird in den Unterklassen gesetzt
|
protected int maxVerlängerungen; // Maximale Anzahl an möglichen Verlängerungen
|
||||||
|
protected int aktuelleVerlängerungen; // Aktuelle Anzahl an durchgeführten Verlängerungen
|
||||||
|
protected boolean istAusgeliehen; // Status, ob das Medium ausgeliehen ist
|
||||||
|
|
||||||
// Konstruktor
|
// Konstruktor
|
||||||
public Medien(String name, String autor, int id) {
|
public Medien(String name, int id, int frist, int maxVerlängerungen) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.autor = autor;
|
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.verlängerung = false; // Standardwert, falls nicht anders gesetzt
|
this.frist = frist;
|
||||||
|
this.maxVerlängerungen = maxVerlängerungen;
|
||||||
|
this.aktuelleVerlängerungen = 0; // Initialisierung ohne Verlängerungen
|
||||||
|
this.istAusgeliehen = false; // Initialer Status: nicht ausgeliehen
|
||||||
}
|
}
|
||||||
|
|
||||||
// Getter-Methoden
|
// Getter-Methoden
|
||||||
|
@ -19,66 +29,133 @@ public abstract class Medien {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getAutor() {
|
|
||||||
return autor;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getId() {
|
public int getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isVerlängerung() {
|
// Implementierung der Ausleihbar-Methoden
|
||||||
return verlängerung;
|
@Override
|
||||||
|
public int getMaxVerlängerungen() {
|
||||||
|
return maxVerlängerungen;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Setter für verlängerung, falls benötigt
|
@Override
|
||||||
public void setVerlängerung(boolean verlängerung) {
|
public boolean kannVerlängern() {
|
||||||
this.verlängerung = verlängerung;
|
return aktuelleVerlängerungen < maxVerlängerungen;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Getter für frist
|
@Override
|
||||||
public int getFrist() {
|
public boolean verlängern() {
|
||||||
return frist;
|
if (kannVerlängern()) {
|
||||||
|
aktuelleVerlängerungen++;
|
||||||
|
return true; // Verlängerung erfolgreich
|
||||||
|
}
|
||||||
|
return false; // Keine Verlängerung mehr möglich
|
||||||
}
|
}
|
||||||
|
|
||||||
// Statische innere Klassen, die Medien erben
|
public boolean istAusgeliehen() {
|
||||||
|
return istAusgeliehen;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ausleihen() {
|
||||||
|
if (!istAusgeliehen) {
|
||||||
|
istAusgeliehen = true;
|
||||||
|
} else {
|
||||||
|
System.out.println("Das Medium ist bereits ausgeliehen.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void zurückgeben() {
|
||||||
|
istAusgeliehen = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unterklasse für Bücher
|
||||||
public static class Book extends Medien {
|
public static class Book extends Medien {
|
||||||
// Spezifische frist für Bücher
|
private String autor;
|
||||||
public Book(String name, String autor, int id) {
|
private int erscheinungsjahr;
|
||||||
super(name, autor, id);
|
|
||||||
this.frist = 4; // frist für Book ist 4
|
public Book(String name, String autor, int id, int erscheinungsjahr) {
|
||||||
|
super(name, id, 4, 3); // Frist für Bücher ist 4 Wochen, bis zu 3 Mal verlängerbar
|
||||||
|
this.autor = autor;
|
||||||
|
this.erscheinungsjahr = erscheinungsjahr;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Getter-Methoden für spezifische Eigenschaften von Büchern
|
||||||
|
public String getAutor() {
|
||||||
|
return autor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getErscheinungsjahr() {
|
||||||
|
return erscheinungsjahr;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Buch: " + name + " von " + autor + " (ID: " + id + ", Jahr: " + erscheinungsjahr + ")";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Unterklasse für DVDs
|
||||||
public static class Dvds extends Medien {
|
public static class Dvds extends Medien {
|
||||||
// Spezifische frist für DVDs
|
private String regisseur;
|
||||||
public Dvds(String name, String autor, int id) {
|
|
||||||
super(name, autor, id);
|
public Dvds(String name, String regisseur, int id) {
|
||||||
this.frist = 1; // frist für Dvds ist 1
|
super(name, id, 1, 0); // Frist für DVDs ist 1 Woche, keine Verlängerung möglich
|
||||||
|
this.regisseur = regisseur;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Getter-Methoden für spezifische Eigenschaften von DVDs
|
||||||
|
public String getRegisseur() {
|
||||||
|
return regisseur;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "DVD: " + name + " von " + regisseur + " (ID: " + id + ")";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Unterklasse für CDs
|
||||||
public static class Cds extends Medien {
|
public static class Cds extends Medien {
|
||||||
// Spezifische frist für CDs
|
public Cds(String name, int id) {
|
||||||
public Cds(String name, String autor, int id) {
|
super(name, id, 2, 0); // Frist für CDs ist 2 Wochen, keine Verlängerung möglich
|
||||||
super(name, autor, id);
|
}
|
||||||
this.frist = 2; // frist für Cds ist 2
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "CD: " + name + " (ID: " + id + ")";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Unterklasse für Brettspiele
|
||||||
public static class Brettspiel extends Medien {
|
public static class Brettspiel extends Medien {
|
||||||
// Spezifische frist für Brettspiele
|
public Brettspiel(String name, int id) {
|
||||||
public Brettspiel(String name, String autor, int id) {
|
super(name, id, 2, 0); // Frist für Brettspiele ist 2 Wochen, keine Verlängerung möglich
|
||||||
super(name, autor, id);
|
}
|
||||||
this.frist = 2; // frist für Brettspiel ist 2
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Brettspiel: " + name + " (ID: " + id + ")";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Unterklasse für Videospiele
|
||||||
public static class Videospiel extends Medien {
|
public static class Videospiel extends Medien {
|
||||||
// Spezifische frist für Videospiele
|
private String entwickler;
|
||||||
public Videospiel(String name, String autor, int id) {
|
|
||||||
super(name, autor, id);
|
public Videospiel(String name, String entwickler, int id) {
|
||||||
this.frist = 3; // frist für Videospiel ist 3
|
super(name, id, 4, 1); // Frist für Videospiele ist 4 Wochen, einmal verlängerbar
|
||||||
|
this.entwickler = entwickler;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Getter-Methoden für spezifische Eigenschaften von Videospielen
|
||||||
|
public String getEntwickler() {
|
||||||
|
return entwickler;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Videospiel: " + name + " von " + entwickler + " (ID: " + id + ")";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,110 @@
|
||||||
|
import java.util.*; // Für LinkedList, List, ArrayList, Scanner und andere grundlegende Klassen
|
||||||
|
import java.util.stream.Collectors; // Für die Collectors-Funktionalität in Streams
|
||||||
|
import java.text.ParseException; // Für Ausnahmebehandlung beim Parsen von Daten
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.function.Predicate;
|
||||||
|
// Für die Verarbeitung von Datumsformaten
|
||||||
|
|
||||||
|
public class Ui {
|
||||||
|
private Scanner scanner = new Scanner(System.in);
|
||||||
|
private Verwaltung verwaltung;
|
||||||
|
|
||||||
|
// Konstruktor, der eine Verwaltung-Instanz annimmt
|
||||||
|
public Ui(Verwaltung verwaltung) {
|
||||||
|
this.verwaltung = verwaltung;
|
||||||
|
}
|
||||||
|
|
||||||
|
void anmeldung() {
|
||||||
|
boolean running = true;
|
||||||
|
|
||||||
|
while (running) {
|
||||||
|
System.out.println("Willkommen! Bitte wählen Sie eine Option:");
|
||||||
|
System.out.println("1: Registrieren");
|
||||||
|
System.out.println("2: Anmelden mit Kundennummer");
|
||||||
|
System.out.println("3: Suchen nach Objekten");
|
||||||
|
System.out.println("0: Programm beenden");
|
||||||
|
|
||||||
|
int menue = scanner.nextInt();
|
||||||
|
scanner.nextLine(); // Leert den Puffer nach nextInt()
|
||||||
|
|
||||||
|
switch (menue) {
|
||||||
|
case 1:
|
||||||
|
registrieren();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
anmelden();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 3:
|
||||||
|
suchenNachMedien();
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
|
||||||
|
|
||||||
|
case 0:
|
||||||
|
System.out.println("Programm wird beendet. Auf Wiedersehen!");
|
||||||
|
running = false;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
System.out.println("Ungültige Auswahl. Bitte versuchen Sie es erneut.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void registrieren() {
|
||||||
|
System.out.print("Geben Sie Ihren Vornamen ein: ");
|
||||||
|
String name = scanner.nextLine();
|
||||||
|
|
||||||
|
System.out.print("Geben Sie Ihren Nachnamen ein: ");
|
||||||
|
String nachname = scanner.nextLine();
|
||||||
|
|
||||||
|
System.out.print("Geben Sie Ihr Geburtsdatum ein (Format: TT.MM.JJJJ): ");
|
||||||
|
String dateInput = scanner.nextLine();
|
||||||
|
|
||||||
|
SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy");
|
||||||
|
formatter.setLenient(false);
|
||||||
|
|
||||||
|
try {
|
||||||
|
Date geburtsdatum = formatter.parse(dateInput);
|
||||||
|
int genkundennummer = verwaltung.generiereEindeutigeKundennummer();
|
||||||
|
|
||||||
|
Benutzer neuerBenutzer = Creator.factoryBenutzer(name, nachname, genkundennummer, geburtsdatum);
|
||||||
|
verwaltung.benutzerListe.add(neuerBenutzer);
|
||||||
|
|
||||||
|
System.out.println("Registrierung erfolgreich! Ihre Kundennummer lautet: " + genkundennummer);
|
||||||
|
} catch (ParseException e) {
|
||||||
|
System.out.println("Ungültiges Datum. Bitte verwenden Sie das Format TT.MM.JJJJ.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void anmelden() {
|
||||||
|
System.out.print("Geben Sie Ihre Kundennummer zur Anmeldung ein: ");
|
||||||
|
int eingabeKundennummer = scanner.nextInt();
|
||||||
|
Predicate<Benutzer> isKundennummerGleich = benutzer -> benutzer.getKundennummer() == eingabeKundennummer;
|
||||||
|
|
||||||
|
if (verwaltung.benutzerListe.stream().anyMatch(isKundennummerGleich)) {
|
||||||
|
System.out.println("Willkommen zurück, Benutzer mit Kundennummer: " + eingabeKundennummer + "!");
|
||||||
|
} else {
|
||||||
|
System.out.println("Kundennummer '" + eingabeKundennummer + "' nicht gefunden. Bitte registrieren Sie sich.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void suchenNachMedien() {
|
||||||
|
System.out.println("Bitte geben Sie stichwortartig an, wonach Sie suchen:");
|
||||||
|
String suchbegriff = scanner.nextLine();
|
||||||
|
|
||||||
|
// Die Methode durchsuchenMedien in der Verwaltungsklasse wird aufgerufen
|
||||||
|
List<Medien> gefundeneMedien = Verwaltung.durchsuchenMedien(verwaltung.mediensListe, suchbegriff);
|
||||||
|
|
||||||
|
if (gefundeneMedien.isEmpty()) {
|
||||||
|
System.out.println("Keine Medien gefunden.");
|
||||||
|
} else {
|
||||||
|
System.out.println("Gefundene Medien:");
|
||||||
|
gefundeneMedien.forEach(System.out::println); // Nutzt die toString()-Methode jeder Medienklasse zur Ausgabe
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -1,2 +1,100 @@
|
||||||
|
import javax.crypto.spec.PSource;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class Verwaltung {
|
public class Verwaltung {
|
||||||
|
LinkedList<Medien> mediensListe = new LinkedList<>();
|
||||||
|
LinkedList<Benutzer> benutzerListe = new LinkedList<>();
|
||||||
|
Creator obj = new Creator();
|
||||||
|
|
||||||
|
void addFunktion(Medien medien) {
|
||||||
|
mediensListe.add(medien);
|
||||||
|
}
|
||||||
|
|
||||||
|
void addBenutzer(Benutzer benutzer) {
|
||||||
|
benutzerListe.add(benutzer);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int mrgen() {
|
||||||
|
Random m = new Random();
|
||||||
|
int[] zahl = new int[7];
|
||||||
|
|
||||||
|
int number;
|
||||||
|
for (int i = 0; i < 7; ++i) {
|
||||||
|
number = m.nextInt(10);
|
||||||
|
zahl[i] = number;
|
||||||
|
}
|
||||||
|
|
||||||
|
number = Arrays.stream(zahl).reduce(0, (acc, digit) -> {
|
||||||
|
return acc * 10 + digit;
|
||||||
|
});
|
||||||
|
return number;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int generiereEindeutigeKundennummer() {
|
||||||
|
final int[] genkundennummer = new int[1]; // Verwendung eines Arrays, um den Wert zu ändern
|
||||||
|
do {
|
||||||
|
genkundennummer[0] = mrgen(); // Eine neue Kundennummer generieren
|
||||||
|
} while (benutzerListe.stream().anyMatch(benutzer -> benutzer.getKundennummer() == genkundennummer[0]));
|
||||||
|
return genkundennummer[0]; // Rückgabe der Kundennummer
|
||||||
|
}
|
||||||
|
|
||||||
|
// Verbesserte Version der durchsuchenMedien-Methode
|
||||||
|
public static List<Medien> durchsuchenMedien(LinkedList<Medien> medienListe, String suchbegriff) {
|
||||||
|
String suchbegriffKlein = suchbegriff.toLowerCase(); // Der Suchbegriff in Kleinbuchstaben für einfache Vergleiche
|
||||||
|
|
||||||
|
return medienListe.stream()
|
||||||
|
.filter(medien -> {
|
||||||
|
// Sucht nach dem Mediumstyp (Art des Mediums) und dem Namen des Werkes
|
||||||
|
boolean gefunden = false;
|
||||||
|
|
||||||
|
// Überprüfe, ob die Art des Mediums im Suchbegriff enthalten ist
|
||||||
|
if (medien instanceof Medien.Book) {
|
||||||
|
gefunden |= "buch".contains(suchbegriffKlein);
|
||||||
|
} else if (medien instanceof Medien.Dvds) {
|
||||||
|
gefunden |= "dvd".contains(suchbegriffKlein);
|
||||||
|
} else if (medien instanceof Medien.Cds) {
|
||||||
|
gefunden |= "cd".contains(suchbegriffKlein);
|
||||||
|
} else if (medien instanceof Medien.Brettspiel) {
|
||||||
|
gefunden |= "sb".contains(suchbegriffKlein); // "sb" für Brettspiel
|
||||||
|
} else if (medien instanceof Medien.Videospiel) {
|
||||||
|
gefunden |= "videospiel".contains(suchbegriffKlein);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Zusätzlich wird nach dem Namen des Werkes gesucht
|
||||||
|
gefunden |= medien.getName().toLowerCase().contains(suchbegriffKlein);
|
||||||
|
|
||||||
|
return gefunden; // Wenn das Medium den Suchbegriff in der Art oder im Namen enthält, bleibt es in der Liste
|
||||||
|
})
|
||||||
|
.collect(Collectors.toList()); // Rückgabe der gefilterten Liste
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class Creator {
|
||||||
|
|
||||||
|
static Benutzer factoryBenutzer(String name, String nachname, int kundennummer, Date date) {
|
||||||
|
if (Benutzer.getJahr(new Benutzer(name, nachname, kundennummer, date)) > 18) {
|
||||||
|
return new Benutzer.Erwachsen(name, nachname, kundennummer, date);
|
||||||
|
} else {
|
||||||
|
return new Benutzer.Kinder(name, nachname, kundennummer, date);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Medien factoryMedien(String name, String regisseur, int id, String art, int erscheinungsjahr) {
|
||||||
|
switch (art.toLowerCase()) {
|
||||||
|
case "buch":
|
||||||
|
return new Medien.Book(name, regisseur, id, erscheinungsjahr); // Autor für Bücher
|
||||||
|
case "dvd":
|
||||||
|
return new Medien.Dvds(name, regisseur, id); // Regisseur für DVDs
|
||||||
|
case "cd":
|
||||||
|
return new Medien.Cds(name, id); // CDs benötigen keinen Autor
|
||||||
|
case "sb": // Brettspiel
|
||||||
|
return new Medien.Brettspiel(name, id); // Brettspiele benötigen keinen Autor
|
||||||
|
case "videospiel":
|
||||||
|
return new Medien.Videospiel(name, regisseur, id); // Entwickler für Videospiele
|
||||||
|
default:
|
||||||
|
throw new IllegalArgumentException("Unbekannter Medientyp: " + art);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue