Skip to content

The implementation of the second phase for the software engineering course

Notifications You must be signed in to change notification settings

oleeng/swe_phase2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 

Repository files navigation

Softwareimplementierung für Softwareengineering

Dies ist die Softwareimplementierung der zweiten Phase für den Kurs 'Software Engineering'. Ziel ist es die Gundfunktionen einer Immobilienseite umzusetzen. Dazu gehört unteranderem das einfügen und löschen von Inseraten sowie das Filtern.

Installation

Das Programm kann ausgeführt werden indem das git-repository gecloned wird und die Java Dateien lokal kompiliert und ausgeführt werden. Es gibt zurzeit keine executable oder sonstige vorkompilierte Dateien.

Achtung: Die korrekte Ausführung wurde nur für Windows getestet. Auf Linux oder MacOS Sytemen kann es Probleme aufgrund anderer Konventionen für Pfadnamen beim Lesen von Dateien wie Bildern geben!

Benutzung

Nach dem Ausführen des Programms laufen einige Demo-Befehle ab, die die Grundfunktionen der Software zeigen. Danach hat man als Benutzer die Möglichkeit über die Konsole selbst mit der Software zu interagieren und zum Beispiel Suchanfragen und vieles mehr durchzuführen.

Beispielausgaben

Hier werden Schreenshots von Beispielkonsolenausgaben eingefügt.

Dokumentation

class Helper

public class Helper

Diese Klasse stellt einige Hilfsfunktionen für andere Klassen bereit.

Variablen

Modifier and Type Name

Konstuktoren

Konstruktor Beschreibung

Methoden

Modifier and Type Methode Beschreibung
static String genId() Diese Funktion gibt einen 64-Zeichen langen pseudozufälligen String (nicht kryptographisch sicher), der von anderen Klassen für die Erzeugung einer eindeutigen ID genutzt wird, zurück.
static String padding(String string, Integer count) Wiederholt den String string count-mal und gibt ihn zurück. Diese Funktion wird von anderen Funktionen zur Erzeugung von padding genutzt.
static void printFile(String path) Gibt den Inhalt der in path übergebenen Datei in der Konsole aus. Wenn die Datei nicht existiert, wird eine entsprechende Nachricht auf der Konsole ausgegeben ohne eine Exception zu werfen oder das Programm zu beenden.
static void printImage(String path) Konvertiert die in path angegebene Bilddatei in ASCII-Art und gibt sie anschließend auf der Konsole aus. Wenn die Datei nicht geöffnet werden kann wird eine entsprechende Nachricht in der Konsole ausgegeben ohne eine Exception zu werfen oder das Programm zu beenden.
Achtung: Die Konsole muss dafür unicode bzw. UTF-8 unterstützen

class Bild

public class Bild

Diese Klasse stellt ein Bild dar und kann unteranderem der Klasse Inserat hinzugefügt werden. Sie nutzt Funktionen der Klasse Helper

Variablen

Modifier and Type Name

Konstuktoren

Konstruktor Beschreibung
Bild(String beschreibung, String path) Erzeugt eine neue Bild Instanz mit der in pfad angegebenen Datei und der Beschreibung aus beschreibung. Falls die Datei nicht existiert oder nicht vom Typ .png oder .jpg ist, wird eine FileNotFoundException ausgeworfen.

Methoden

Modifier and Type Methode Beschreibung
String getId() Gibt die 64-Zeichen lange ID des Bildes zurück
String getBeschreibung() Gibt die Beschreibung des Bildes zurück
String getDateiformat() Gibt da Dateiformat des Bildes zurück
String getPath() Gibt den absoluten Pfad des Bildes zurück
Integer getDateigroesse() Gibt die Dateigröße des Bildes in Byte zurück
void print() Gibt alle wichtigen Informationen zu dem Bild in der Konsole aus
void anzeigen() Konvertiert das Bild in ASCII-Art und gibt es auf der Konsole aus. Diese Funktion nutzt die Funktion printImage(String path) der Klasse Helper
Achtung: Die Konsole muss dafür unicode bzw. UTF-8 unterstützen

class Eigenschaft

public class Eigenschaft

Diese Klasse stellt eine Eigenschaft dar, die einem Inserat hinzugefügt werden kann.

Variablen

Modifier and Type Name

Konstuktoren

Konstruktor Beschreibung
Eigenschaft(String name, String value) Erzeugt eine neue Eigenschaft Instanz mit dem Namen name und dem Stringwert value
Eigenschaft(String name, Double value) Erzeugt eine neue Eigenschaft Instanz mit dem Namen name und dem Doublewert value

Methoden

Modifier and Type Methode Beschreibung
String getName() Gibt den Namen der Eigenschaft zurück.
String getValue() Gibt den Wert der Eigenschaft zurück. Doublewerte werden hier als String zurückgegeben
String getType() Gibt den Typ der Eigenschaft zurück, also ob es sich bei dem gespeicherten Wert um eine "String" oder "Double" handelt

class Filter

public class Filter

Diese Klasse stellt einen Filter, der dafür genutzt werden kann alle Inserate eines InseratContainers nach bestimmten Kriterien zu durchsuchen.

Variablen

Modifier and Type Name

Konstuktoren

Konstruktor Beschreibung
Filter(String name, String value) Erzeugt eine neue Filter Instanz mit dem Namen name und dem Stringwert value
Filter(String name, Double value, String method) Erzeugt eine neue Filter Instanz mit dem Namen name und dem Doublewert value. Beim Typ kann mit "min" oder "max" angegeben werden ob es sich um eine obere oder untere Grenze handelt.

Methoden

Modifier and Type Methode Beschreibung
String getName() Gibt den Namen des Filters zurück.
String getValue() Gibt den Wert des Filters zurück. Doublewerte werden hier als String zurückgegeben
String getMethod() Gibt die Filtermethode des Filters zurück. Bei einem Textfilter wird als Methode ein leerer String zurückgegeben.
String getType() Gibt den Typ des Filters zurück, also ob es sich bei dem gespeicherten Wert um eine "String" oder "Double" handelt

interface InseratComposite

public interface InseratComposite

Diese Klasse ist das Interface, welches von den Klassen Inserat und InseratContainer als Teil des Composite-Musters implementiert wird.

Methoden

Modifier and Type Methode
void print()
void print(Integer level)
Double getPreis()

class Inserat

public class Inserat implements InseratComposite

Diese Klasse repräsentiert ein Inserat und nutzt unteranderem Funktionen der Klasse Helper.

Variablen

Modifier and Type Name

Konstuktoren

Konstruktor Beschreibung
Inserat(String beschreibung, Standort standort, Double preis, String immobielenart, String wohnart) Erzeugt eine neue Inserat Instanz mit der Beschreibung beschreibung, dem in standort übergebenen Standort, dem Preis preis, der Immobilienart immobilienart, welche angibt, ob es sich um ein "Haus", "Wohnung" oder "Bungalow" hadelt, und der Wohnart wohnart, welche angibt, ob es sich um ein "wohnen" oder "kaufen" Objekt handelt.

Methoden

Modifier and Type Methode Beschreibung
static HashMap<String,String> getErlaubteEigenschaften() Diese Funktion gibt eine Hashmap aller erlaubten Eigenschaften zurück. Dabei ist der Key der Name der Eigenschaft und der Wert der jeweilige Typ, also "String" oder "Double".
void add(Rundgang rundgang) Fügt dem Inserat den in rundgang übergebenen Rundgang hinzu.
void removeRundgang() Entfernt den Rundgang des Inserat.
void add(Bild ... bilder) Fügt dem Inserat alle in bilder übergebenen Bilder hinzu.
void remove(Bild... bilder) Entfernt alle in bilder übergebenen Bilder dem Inserat.
void add(Eigenschaft... eigenschaften) Fügt dem Inserat alle in eigenschaften übergebenen Eigenschaften hinzu.
void remove(String... names) Entfernt alle in Eigenschaften mit mit den Namen names dem Inserat.
String getId() Gibt die 64-Zeichen lange ID des Inserats zurück
String getBeschreibung() Gibt die Beschreibung des Inserats zurück
Standort getStandort() Gibt den Standort des Inserats zurück
void starteRundgang() Startet den Rundgang des Inserats.
Rundgang getRundgang() Gibt den Rundgang des Inserats zurück.
void printBilder() Ruft für jedes Bild des Inserats die print() Funktion auf.
void zeigeBilder() Ruft für jedes Bild des Inserats die anzeigen() Funktion auf.
String getEigenschaft(String name) Gibt den Wert der Eigenschaft mit dem Namen name des Inserats zurück. Falls das Inserat diese Eigenschaft nicht besitzt wird null zurückgegeben.
void printEigenschaften() Gibt alle Eigenschaften des Inserats in der Konsole aus.
void print() Dies ist eine Funktion des implementierten Interfaces InseratComposite. Sie gibt für das Inserat die ID und die Beschreibung in der Konsole aus.
void print(Integer level) Dies ist eine Funktion des implementierten Interfaces InseratComposite. Sie gibt für das Inserat die ID und die Beschreibung in der Konsole aus, jedoch mit einem padding entsprechned dem in level übergebenen Wert.
Double getPreis() Dies ist eine Funktion des implementierten Interfaces InseratComposite. Sie gibt den Preis des Inserats zurück.

class InseratContainer

public class Inserat implements InseratComposite

Diese Klasse stellt einen Container bereit, dem beliebig viele InseratComposites, also Inserate und InseratContainer, hinzugefügt werden können. Sie nutzt auch einige Funktionen der Klasse Helper.

Variablen

Modifier and Type Name

Konstuktoren

Konstruktor Beschreibung
InseratContainer(String name) Erzeugt eine neue InseratContainer Instanz mit dem Namen name.

Methoden

Modifier and Type Methode Beschreibung
void add(InseratComposite... inserate) Fügt dem InseratContainer alle in inserate übergebenen InseratComposite hinzu.
void add(ArrayList<InseratComposite> inserate) Fügt dem InseratContainer alle in inserate übergebenen InseratComposite hinzu.
void remove(InseratComposite... inserate) Entfernt dem InseratContainer das in inserat übergebene InseratComposite, wenn es exsistiert.
InseratComposite get(Integer number) Gibt das InseratComposite mit dem Index number zurück oder null wenn number außerhalb des Indexbereiches liegt.
void print() Dies ist eine Funktion des implementierten Interfaces InseratComposite. Sie gibt alle im InseratContainer enthaltenen InseratComposite auf der Konsole aus.
void print(Integer level) Dies ist eine Funktion des implementierten Interfaces InseratComposite. Sie gibt alle im InseratContainer enthaltenen InseratComposite auf der Konsole aus, jedoch mit einem padding entsprechned dem in level übergebenen Wert.
InseratContainer suche(Filter... filter) Durchsucht alle im InseratContainer enthaltenen InseratComposite nach den Inseraten, die alle in filter übergebenen Filter erfüllen. Bei fehlerhaften oder ungültigen Filtern wird eine entsprechende Nachricht in der Konsole ausgegeben und der Filtervorgang abgebrochen.
Double getPreis() Dies ist eine Funktion des implementierten Interfaces InseratComposite. Sie gibt den Gesamtpreis aller im InseratContainer enthaltenen InseratComposite zurück.

class Modellmoebel

public class Modellmoebel

Diese Klasse stellt ein Möbelstück dar, welches einem Rundgang hinzugefügt werden kann. Sie nutzt einige Funktionen der Klasse Helper.

Variablen

Modifier and Type Name

Konstuktoren

Konstruktor Beschreibung
Modellmoebel(String beschreibung, String groesse) Erzeugt eine neue Modellmoebel Instanz mit der Beschreibung beschreibung und den Maßen groesse.

Methoden

Modifier and Type Methode Beschreibung
void print() Diese Funktion gibt die Id, die Beschreibung und die Maße des Modellmoebel in der Konsole aus.
String getId() Gibt die 64-Zeichen lange ID des Modellmoebel zurück.
String getBeschreibung() Gibt die Beschreibung des Modellmoebel zurück.
String getGroesse() Gibt die Maße des Modellmoebel zurück.

class Rundgang

public class Rundgang

Diese Klasse stellt einen Rundgang dar, der unteranderem einem Inserat hinzugefügt werden kann. Sie nutzt Funktionen der Klasse Helper

Variablen

Modifier and Type Name

Konstuktoren

Konstruktor Beschreibung
Rundgang(String audiokommentar) Erzeugt eine neue Rundgang Instanz mit dem Audiokommentar audiokommentar.

Methoden

Modifier and Type Methode Beschreibung
String getId() Gibt die 64-Zeichen lange ID des Modellmoebel zurück.
void starteRundgang() Startet den Rundgang.
void playAudiokommentar() Spielt den Audiokommentar des Rundgang ab.
void addMoebel(Modellmoebel... moebel) Fügt dem Rundgang alle in moebel enthaltenen Modellmoebel hinzu.
void printMoebel() Gibt alle im Rundgang enthaltenen Modellmoebel in der Konsole aus.

class Standort

public class Standort

Diese Klasse repräsentiert einen Standort.

Variablen

Modifier and Type Name

Konstuktoren

Konstruktor Beschreibung
Standort(String land, String bundesland, String stadt, String plz, String strasse) Erzeugt eine neue Standort Instanz mit den übergebenen Parametern.

Methoden

Modifier and Type Methode Beschreibung
String getLand() Gibt das Land des Standorts zurück.
String getBundesland() Gibt das Bundesland des Standorts zurück.
String getStadt() Gibt die Stadt des Standorts zurück.
String getPLZ() Gibt die PLZ des Standorts zurück.
String getStrasse() Gibt die Straße des Standorts zurück.
void printKarte(Integer zoom) Ruft von der here-API einen Kartenausschnitt von dem Standort unter Beachtung des in zoom angegeben Zoomfaktors ab, konvertiert ihn in ASCII-Art und gibt ihn anschließend auf der Konsole aus. Der Zoomfaktor darf zwischen 0 und 20 liegen, es wird jedoch ein Wert von 14 oder 15 empfohlen.
Achtung: Die Konsole muss dafür unicode bzw. UTF-8 unterstützen

About

The implementation of the second phase for the software engineering course

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages