Compare commits
No commits in common. "main" and "JavaFX" have entirely different histories.
20
README.md
20
README.md
@ -1,20 +0,0 @@
|
||||
# Personalbuero
|
||||
|
||||
This project allows to manage a Personalbuero. Made purely for school purposes.
|
||||
## Badges
|
||||
|
||||
![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/FUH22860/Personalbuero)
|
||||
![Lines of code](https://img.shields.io/tokei/lines/github/FUH22860/Personalbuero)
|
||||
## Features
|
||||
|
||||
- Mitarbeiter aufnehmen
|
||||
- Mitarbeiter kündigen
|
||||
- Gehalt/Alter/Dienstalter/Prämien berechnen
|
||||
- Export/Import
|
||||
- Cross platform
|
||||
## Authors
|
||||
|
||||
- [@FUH22860](https://github.com/FUH22860)
|
||||
## Acknowledgements
|
||||
|
||||
- [Github readme generator](https://nxt-readme.vercel.app/)
|
33
src/application/Main.java
Normal file
33
src/application/Main.java
Normal file
@ -0,0 +1,33 @@
|
||||
package application;
|
||||
|
||||
import javafx.application.Application;
|
||||
import javafx.stage.Stage;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.scene.control.Alert;
|
||||
import javafx.scene.control.Alert.AlertType;
|
||||
import javafx.scene.control.ButtonType;
|
||||
|
||||
public class Main extends Application {
|
||||
public void start(Stage primaryStage) {
|
||||
try {
|
||||
RootBorderPane root = new RootBorderPane();
|
||||
Scene scene = new Scene(root, 1000, 250);
|
||||
primaryStage.setTitle("Mitarbeiter-Verwaltung");
|
||||
primaryStage.setScene(scene);
|
||||
primaryStage.show();
|
||||
} catch (Exception e) {
|
||||
showAlert(AlertType.ERROR, e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public static void showAlert(AlertType alertType, String message) {
|
||||
Alert alert = new Alert(alertType, message, ButtonType.OK);
|
||||
alert.setTitle("Hinweis");
|
||||
alert.setHeaderText(null); // nice to have
|
||||
alert.showAndWait(); // ...andWait ... modality
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
launch(args);
|
||||
}
|
||||
}
|
86
src/application/RootBorderPane.java
Normal file
86
src/application/RootBorderPane.java
Normal file
@ -0,0 +1,86 @@
|
||||
package application;
|
||||
|
||||
import javafx.application.Platform;
|
||||
import javafx.scene.control.Alert.AlertType;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.scene.control.Menu;
|
||||
import javafx.scene.control.MenuBar;
|
||||
import javafx.scene.control.MenuItem;
|
||||
import javafx.scene.control.RadioButton;
|
||||
import javafx.scene.layout.BorderPane;
|
||||
import javafx.scene.layout.HBox;
|
||||
import javafx.scene.layout.VBox;
|
||||
import model.Personalbuero;
|
||||
|
||||
public class RootBorderPane extends BorderPane {
|
||||
private MenuItem miLaden, miSpeichern, miExportieren, miBeenden, miLoeschen, miSortAlter, miSortName, miSortGehalt,
|
||||
miUeber;
|
||||
private Menu mDatei, mMitarbeiter, mSortierenNach, mHilfe;
|
||||
private MenuBar menuBar;
|
||||
|
||||
private Personalbuero personalbuero;
|
||||
|
||||
private VBox buttonBoxRechts;
|
||||
private HBox buttonBoxUnten;
|
||||
private RadioButton rbAlter, rbGehalt, rbNamen;
|
||||
private Button btSortieren, btExportieren;
|
||||
|
||||
public RootBorderPane() {
|
||||
initComponents();
|
||||
addComponents();
|
||||
addHandlers();
|
||||
}
|
||||
|
||||
private void initComponents() {
|
||||
miLaden = new MenuItem("Laden");
|
||||
miSpeichern = new MenuItem("Speichern");
|
||||
// miSpeichern.setDisable(true);
|
||||
miExportieren = new MenuItem("Exportieren");
|
||||
miBeenden = new MenuItem("Beenden");
|
||||
|
||||
miSortAlter = new MenuItem("Alter");
|
||||
miSortName = new MenuItem("Namen");
|
||||
miSortGehalt = new MenuItem("Gehalt");
|
||||
miLoeschen = new MenuItem("L\u00f6schen");
|
||||
|
||||
miUeber = new MenuItem("\u00dcber");
|
||||
|
||||
mDatei = new Menu("Datei");
|
||||
mMitarbeiter = new Menu("Mitarbeiter");
|
||||
mSortierenNach = new Menu("Sortieren nach");
|
||||
mHilfe = new Menu("Hilfe");
|
||||
|
||||
menuBar = new MenuBar();
|
||||
|
||||
personalbuero = new Personalbuero();
|
||||
|
||||
rbAlter = new RadioButton("nach Alter");
|
||||
// rbAlter.setSelected(true);
|
||||
rbNamen = new RadioButton("nach Namen");
|
||||
rbGehalt = new RadioButton("nach Gehalt");
|
||||
btSortieren = new Button("Sortieren");
|
||||
btExportieren = new Button("Alle Mitarbeiter-Informationen exportieren...");
|
||||
|
||||
// TODO Container-Klassen zum Sortieren (rechts) und fuer die Buttons (unten)
|
||||
|
||||
}
|
||||
|
||||
private void addComponents() {
|
||||
// TODO
|
||||
}
|
||||
|
||||
private void addHandlers() {
|
||||
// TODO
|
||||
}
|
||||
|
||||
// -------------------------------------
|
||||
// Handler-Methoden-------------------------
|
||||
private void ueber() {
|
||||
Main.showAlert(AlertType.INFORMATION, "Applikation Personalb\u00fcro");
|
||||
}
|
||||
|
||||
private void beenden() {
|
||||
// System.exit(0); never ever!!!!!
|
||||
Platform.exit();
|
||||
}
|
||||
}
|
@ -1,21 +1,21 @@
|
||||
package model;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
// 2022-03-03
|
||||
|
||||
public class AlterComparator implements Comparator<Mitarbeiter> {
|
||||
|
||||
@Override
|
||||
public int compare(Mitarbeiter m1, Mitarbeiter m2) {
|
||||
// TODO null-Pruefung -> wird durch ExceptionHandling "aendert sich"
|
||||
if (m1.berechneAlter() > m2.berechneAlter())
|
||||
return 1; // m1 ist aelter als m2
|
||||
else
|
||||
if (m1.berechneAlter() < m2.berechneAlter())
|
||||
return -1; // m1 ist juenger als m2
|
||||
else // gleiches Alter
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
package model;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
// 2022-03-03
|
||||
|
||||
public class AlterComparator implements Comparator<Mitarbeiter> {
|
||||
|
||||
@Override
|
||||
public int compare(Mitarbeiter m1, Mitarbeiter m2) {
|
||||
// TODO null-Pruefung -> wird durch ExceptionHandling "aendert sich"
|
||||
if (m1.berechneAlter() > m2.berechneAlter())
|
||||
return 1; // m1 ist aelter als m2
|
||||
else
|
||||
if (m1.berechneAlter() < m2.berechneAlter())
|
||||
return -1; // m1 ist juenger als m2
|
||||
else // gleiches Alter
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -5,13 +5,14 @@ import java.time.Year;
|
||||
* Klasse Arzt
|
||||
*
|
||||
* @author (WES)
|
||||
* @version (2022-04-05)
|
||||
* @version (2022-04-07)
|
||||
*
|
||||
* umgestellt auf Exception-Handling
|
||||
* mit freiwilliger Uebung toStringCsv()
|
||||
* mit freiwilliger Uebung public Arzt (String[] zeilenTeile)
|
||||
* mit public Arzt(String[] zeilenTeile)
|
||||
* mit setAllFields(String[] zeilenTeile)
|
||||
* mit equals() und hashCode()
|
||||
*/
|
||||
|
||||
public class Arzt extends Mitarbeiter implements GehaltBerechenbar
|
||||
@ -90,6 +91,33 @@ public class Arzt extends Mitarbeiter implements GehaltBerechenbar
|
||||
{
|
||||
return fixum;
|
||||
}
|
||||
// ------------------------- equals / hashCode ---------------
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (!super.equals(obj))
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
Arzt other = (Arzt) obj;
|
||||
if (Float.floatToIntBits(fixum) != Float.floatToIntBits(other.fixum))
|
||||
return false;
|
||||
if (wochenStunden != other.wochenStunden)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = super.hashCode();
|
||||
result = prime * result + Float.floatToIntBits(fixum);
|
||||
result = prime * result + wochenStunden;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
// -------------------------- print / toString / toStringCsv ------------
|
||||
|
||||
@ -98,7 +126,7 @@ public class Arzt extends Mitarbeiter implements GehaltBerechenbar
|
||||
// System.out.println(this);
|
||||
// }
|
||||
|
||||
public String toString()
|
||||
public String toString()
|
||||
{
|
||||
return "Arzt: " +
|
||||
super.toString() +
|
||||
|
@ -1,28 +1,28 @@
|
||||
package model;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
// 2022-03-03
|
||||
|
||||
public class DienstalterComparator implements Comparator<Mitarbeiter> {
|
||||
|
||||
@Override
|
||||
public int compare(Mitarbeiter m1, Mitarbeiter m2) {
|
||||
|
||||
return m1.berechneDienstalter() - m2.berechneDienstalter();
|
||||
|
||||
// (m1 Dienstalter) 1 - (m2 Dienstalter) 2 = -1
|
||||
// return -1;
|
||||
// 6 - 2 = 4
|
||||
// return 1 -> ok return 4
|
||||
// 1 - 1 = 0
|
||||
// return 0
|
||||
|
||||
// Weitere Varianten:
|
||||
// return Integer.compare(m1.berechneDienstalter(), m2.berechneDienstalter());
|
||||
|
||||
// return m2.getEintrJahr().compareTo(m1.getEintrJahr()); // Year.compareTo
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
package model;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
// 2022-03-03
|
||||
|
||||
public class DienstalterComparator implements Comparator<Mitarbeiter> {
|
||||
|
||||
@Override
|
||||
public int compare(Mitarbeiter m1, Mitarbeiter m2) {
|
||||
|
||||
return m1.berechneDienstalter() - m2.berechneDienstalter();
|
||||
|
||||
// (m1 Dienstalter) 1 - (m2 Dienstalter) 2 = -1
|
||||
// return -1;
|
||||
// 6 - 2 = 4
|
||||
// return 1 -> ok return 4
|
||||
// 1 - 1 = 0
|
||||
// return 0
|
||||
|
||||
// Weitere Varianten:
|
||||
// return Integer.compare(m1.berechneDienstalter(), m2.berechneDienstalter());
|
||||
|
||||
// return m2.getEintrJahr().compareTo(m1.getEintrJahr()); // Year.compareTo
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -2,120 +2,132 @@ package model;
|
||||
|
||||
import java.time.Year;
|
||||
|
||||
// 2022-04-05 4BAIF
|
||||
// 2022-04-07 4BAIF
|
||||
// umgestellt auf Exception-Handling
|
||||
// mit serialVersionUID fuer Serialisierung
|
||||
// mit toStringCsv()
|
||||
// mit Freelancer (String[] zeilenTeile)
|
||||
// mit equals() und hashCode()
|
||||
|
||||
public class Freelancer extends Mitarbeiter implements PraemieBerechenbar, GehaltBerechenbar {
|
||||
public class Freelancer extends Mitarbeiter implements PraemieBerechenbar, GehaltBerechenbar
|
||||
{
|
||||
private static final long serialVersionUID = 2022_03_22__13_15L;
|
||||
private int stunden;
|
||||
private float stundenSatz;
|
||||
// private Year eintrJahr; // SO NICHT!!!
|
||||
private int stunden;
|
||||
private float stundenSatz;
|
||||
//private Year eintrJahr; // SO NICHT!!!
|
||||
|
||||
public Freelancer(float stundenSatz, int stunden) throws PersonalException {
|
||||
super(); // ruft den parameterlosen/Default-Konstruktor der Superklasse Mitarbeiter auf
|
||||
setStundenSatz(stundenSatz);
|
||||
setStunden(stunden);
|
||||
}
|
||||
public Freelancer(float stundenSatz, int stunden) throws PersonalException
|
||||
{
|
||||
super(); // ruft den parameterlosen/Default-Konstruktor der Superklasse Mitarbeiter auf
|
||||
setStundenSatz(stundenSatz);
|
||||
setStunden(stunden);
|
||||
}
|
||||
|
||||
public Freelancer(String name, char gesch, Year gebJahr, Year eintrJahr, float stundenSatz, int stunden) throws PersonalException
|
||||
{
|
||||
// setName(name); // so nicht!
|
||||
// setGesch(gesch); // so nicht!
|
||||
// ....
|
||||
super(name, gesch, gebJahr, eintrJahr); // Aufruf des. K. der Superklasse
|
||||
setStundenSatz(stundenSatz);
|
||||
setStunden(stunden);
|
||||
}
|
||||
|
||||
public Freelancer (String[] zeilenTeile) throws PersonalException
|
||||
{
|
||||
super(zeilenTeile);
|
||||
// Freelancer;Anna;w;1976;2002;"10";"100.0"
|
||||
// [5] [6] im String-Array zeilenTeile
|
||||
// Achtung: ArrayIndexOutOfBoundsException
|
||||
// beim Parsen: NumberFormatException
|
||||
try
|
||||
{
|
||||
setStunden( Integer.parseInt(zeilenTeile[5].trim()) ); // int
|
||||
setStundenSatz( Float.parseFloat(zeilenTeile[6].trim()) ); // float
|
||||
}
|
||||
catch(ArrayIndexOutOfBoundsException e)
|
||||
{
|
||||
throw new PersonalException("Array-Fehler bei Freelancer(zeilenTeile): "
|
||||
+ e.getMessage());
|
||||
}
|
||||
catch(NumberFormatException e)
|
||||
{
|
||||
throw new PersonalException("Zahlenumwandlungs-Fehler (gebJahr oder eintrJahr) bei Freelancer(zeilenTeile): "
|
||||
+ e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public Freelancer(String name, char gesch, Year gebJahr, Year eintrJahr, float stundenSatz, int stunden)
|
||||
throws PersonalException {
|
||||
// setName(name); // so nicht!
|
||||
// setGesch(gesch); // so nicht!
|
||||
// ....
|
||||
super(name, gesch, gebJahr, eintrJahr); // Aufruf des. K. der Superklasse
|
||||
setStundenSatz(stundenSatz);
|
||||
setStunden(stunden);
|
||||
}
|
||||
public int getStunden()
|
||||
{
|
||||
return stunden;
|
||||
}
|
||||
|
||||
public Freelancer(String[] zeilenTeile) throws PersonalException {
|
||||
super(zeilenTeile);
|
||||
// Freelancer;Anna;w;1976;2002;"10";"100.0"
|
||||
// [5] [6] im String-Array zeilenTeile
|
||||
// Achtung: ArrayIndexOutOfBoundsException
|
||||
// beim Parsen: NumberFormatException
|
||||
try {
|
||||
setStunden(Integer.parseInt(zeilenTeile[5].trim())); // int
|
||||
setStundenSatz(Float.parseFloat(zeilenTeile[6].trim())); // float
|
||||
} catch (ArrayIndexOutOfBoundsException e) {
|
||||
throw new PersonalException("Array-Fehler bei Freelancer(zeilenTeile): " + e.getMessage());
|
||||
} catch (NumberFormatException e) {
|
||||
throw new PersonalException(
|
||||
"Zahlenumwandlungs-Fehler (gebJahr oder eintrJahr) bei Freelancer(zeilenTeile): " + e.getMessage());
|
||||
}
|
||||
}
|
||||
public float getStundenSatz()
|
||||
{
|
||||
return stundenSatz;
|
||||
}
|
||||
|
||||
public int getStunden() {
|
||||
return stunden;
|
||||
}
|
||||
public void setStunden(int stunden) throws PersonalException
|
||||
{
|
||||
if (stunden > 0)
|
||||
this.stunden = stunden;
|
||||
else
|
||||
throw new PersonalException("Fehler bei setStunden(): stunden sind 0 oder kleiner (" + stunden + ")");
|
||||
}
|
||||
|
||||
public float getStundenSatz() {
|
||||
return stundenSatz;
|
||||
}
|
||||
public void setStundenSatz(float stundenSatz) throws PersonalException
|
||||
{
|
||||
if (stundenSatz > 0f)
|
||||
this.stundenSatz = stundenSatz;
|
||||
else
|
||||
throw new PersonalException("Fehler bei setStundenSatz(): stundenSatz ist 0.0 oder kleiner (" + stundenSatz + ")");
|
||||
}
|
||||
|
||||
// so NICHT!!!
|
||||
// public void setEintrJahr(Year eintrJahr)
|
||||
// {
|
||||
// if (eintrJahr != null)
|
||||
// if (gebJahr != null)
|
||||
// {
|
||||
// int aktJahr = Year.now().getValue();
|
||||
// if (eintrJahr.getValue() >= gebJahr.getValue()+15)
|
||||
// if (eintrJahr.getValue() <= aktJahr )
|
||||
// this.eintrJahr = eintrJahr;
|
||||
// else
|
||||
// System.out.println("Falscher Parameterwert fuer setEintrJahr("+eintrJahr+") !!!");
|
||||
// else
|
||||
// System.out.println("Fehler bei setEintrJahr("+eintrJahr+") -> Person ist zu jung ("+berechneAlter()+")!!!");
|
||||
// }
|
||||
// else
|
||||
// System.out.println("null-Referenz bei gebJahr -> eintrJahr kann nicht geprueft werden !!!");
|
||||
// else
|
||||
// System.out.println("null-Referenz fuer setEintrJahr(Year eintrJahr) !!!");
|
||||
// }
|
||||
|
||||
public float berechneGehalt()
|
||||
{
|
||||
return stundenSatz*stunden;
|
||||
}
|
||||
|
||||
public void setStunden(int stunden) throws PersonalException {
|
||||
if (stunden > 0)
|
||||
this.stunden = stunden;
|
||||
else
|
||||
throw new PersonalException("Fehler bei setStunden(): stunden sind 0 oder kleiner (" + stunden + ")");
|
||||
}
|
||||
|
||||
public void setStundenSatz(float stundenSatz) throws PersonalException {
|
||||
if (stundenSatz > 0f)
|
||||
this.stundenSatz = stundenSatz;
|
||||
else
|
||||
throw new PersonalException(
|
||||
"Fehler bei setStundenSatz(): stundenSatz ist 0.0 oder kleiner (" + stundenSatz + ")");
|
||||
}
|
||||
|
||||
// so NICHT!!!
|
||||
// public void setEintrJahr(Year eintrJahr)
|
||||
// {
|
||||
// if (eintrJahr != null)
|
||||
// if (gebJahr != null)
|
||||
// {
|
||||
// int aktJahr = Year.now().getValue();
|
||||
// if (eintrJahr.getValue() >= gebJahr.getValue()+15)
|
||||
// if (eintrJahr.getValue() <= aktJahr )
|
||||
// this.eintrJahr = eintrJahr;
|
||||
// else
|
||||
// System.out.println("Falscher Parameterwert fuer setEintrJahr("+eintrJahr+")
|
||||
// !!!");
|
||||
// else
|
||||
// System.out.println("Fehler bei setEintrJahr("+eintrJahr+") -> Person ist zu
|
||||
// jung ("+berechneAlter()+")!!!");
|
||||
// }
|
||||
// else
|
||||
// System.out.println("null-Referenz bei gebJahr -> eintrJahr kann nicht
|
||||
// geprueft werden !!!");
|
||||
// else
|
||||
// System.out.println("null-Referenz fuer setEintrJahr(Year eintrJahr) !!!");
|
||||
// }
|
||||
|
||||
public float berechneGehalt() {
|
||||
return stundenSatz * stunden;
|
||||
}
|
||||
|
||||
public float berechnePraemie() // FUE Refactoring mit Verwendung von switch-case
|
||||
{
|
||||
float praemie = 0f;
|
||||
|
||||
if (berechneDienstalter() == 15)
|
||||
praemie = berechneGehalt(); // 1x Gehalt als Praemie
|
||||
else if (berechneDienstalter() == 20)
|
||||
praemie = berechneGehalt() * 2; // 2x Gehalt als Praemie
|
||||
|
||||
return praemie;
|
||||
}
|
||||
|
||||
public String infoBerechnungPraemie() {
|
||||
return "Fuer 15 Jahre Mitarbeit bei einem Personalbuero erhaelt der Freelancer ein \"Gehalt\", fuer 20 Jahre zwei \"Gehaelter\"\" als Praemie.";
|
||||
}
|
||||
|
||||
// ----------------------------- equals / hashCode
|
||||
public float berechnePraemie() // FUE Refactoring mit Verwendung von switch-case
|
||||
{
|
||||
float praemie = 0f;
|
||||
|
||||
if (berechneDienstalter() == 15)
|
||||
praemie = berechneGehalt(); // 1x Gehalt als Praemie
|
||||
else
|
||||
if (berechneDienstalter() == 20)
|
||||
praemie = berechneGehalt()*2; // 2x Gehalt als Praemie
|
||||
|
||||
return praemie;
|
||||
}
|
||||
|
||||
public String infoBerechnungPraemie()
|
||||
{
|
||||
return "Fuer 15 Jahre Mitarbeit bei einem Personalbuero erhaelt der Freelancer ein \"Gehalt\", fuer 20 Jahre zwei \"Gehaelter\"\" als Praemie.";
|
||||
}
|
||||
// ------------------------- equals / hashCode ---------------
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
@ -130,28 +142,9 @@ public class Freelancer extends Mitarbeiter implements PraemieBerechenbar, Gehal
|
||||
if (Float.floatToIntBits(stundenSatz) != Float.floatToIntBits(other.stundenSatz))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
// ---------------------------- toString / print ----------------------------
|
||||
|
||||
public String toStringCsv() {
|
||||
char sep = ';';
|
||||
|
||||
return super.toStringCsv() + sep + stunden + sep + stundenSatz;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return new StringBuffer().append("Freelancer ").append(super.toString()). // ohne super. -> StackOverflowError
|
||||
// -> rekursiver Methodenaufruf
|
||||
append(" Stunden: ").append(stunden).append(" Stundensatz: ").append(stundenSatz).append(" Praemie: ")
|
||||
.append(berechnePraemie()).toString();
|
||||
}
|
||||
|
||||
public void print() {
|
||||
System.out.println(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = super.hashCode();
|
||||
@ -160,4 +153,30 @@ public class Freelancer extends Mitarbeiter implements PraemieBerechenbar, Gehal
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------- toString / print ----------------------------
|
||||
|
||||
public String toStringCsv()
|
||||
{
|
||||
char sep = ';';
|
||||
|
||||
return super.toStringCsv()+sep+stunden+sep+stundenSatz;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public String toString()
|
||||
{
|
||||
return new StringBuffer().append("Freelancer ").
|
||||
append(super.toString()). // ohne super. -> StackOverflowError -> rekursiver Methodenaufruf
|
||||
append(" Stunden: ").
|
||||
append(stunden).append(" Stundensatz: ").
|
||||
append(stundenSatz).
|
||||
append(" Praemie: ").append(berechnePraemie()).toString();
|
||||
}
|
||||
|
||||
public void print()
|
||||
{
|
||||
System.out.println(this);
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ import java.time.Year;
|
||||
import java.util.Comparator;
|
||||
import java.util.Objects;
|
||||
|
||||
//2022-04-05 4BAIF
|
||||
//2022-04-07 4BAIF
|
||||
|
||||
//Klasse abstract
|
||||
//Methode berechneGehalt() abstract
|
||||
@ -18,196 +18,222 @@ import java.util.Objects;
|
||||
// neuer Konstruktor Mitarbeiter(String[] zeilenTeile) fuer importMitarbeiter
|
||||
// setAllFields(String [] zeilenTeile)
|
||||
|
||||
public abstract class Mitarbeiter implements Comparable<Mitarbeiter>, Serializable
|
||||
// mit equals() und hashCode()
|
||||
|
||||
public abstract class Mitarbeiter implements Comparable <Mitarbeiter>, Serializable
|
||||
//public class Mitarbeiter implements Comparable <Mitarbeiter> // zum Testen
|
||||
{
|
||||
|
||||
private static final long serialVersionUID = 2022_03_22__13_15L;
|
||||
private String name;
|
||||
private Year gebJahr, eintrJahr;
|
||||
private char gesch;
|
||||
private Year gebJahr, eintrJahr;
|
||||
private char gesch;
|
||||
|
||||
public Mitarbeiter() throws PersonalException // zum Testen
|
||||
{
|
||||
setName("Anna");
|
||||
setGesch('w');
|
||||
setGebJahr(Year.of(2001));
|
||||
setEintrJahr(Year.now());
|
||||
}
|
||||
public Mitarbeiter() throws PersonalException // zum Testen
|
||||
{
|
||||
setName("Anna");
|
||||
setGesch('w');
|
||||
setGebJahr(Year.of(2001));
|
||||
setEintrJahr(Year.now());
|
||||
}
|
||||
|
||||
public Mitarbeiter(String name, char gesch, Year gebJahr, Year eintrJahr) throws PersonalException {
|
||||
setName(name);
|
||||
setGesch(gesch);
|
||||
setGebJahr(gebJahr);
|
||||
setEintrJahr(eintrJahr);
|
||||
}
|
||||
|
||||
public Mitarbeiter(String[] zeilenTeile) throws PersonalException {
|
||||
if (zeilenTeile != null) {
|
||||
public Mitarbeiter(String name, char gesch, Year gebJahr, Year eintrJahr) throws PersonalException
|
||||
{
|
||||
setName(name);
|
||||
setGesch(gesch);
|
||||
setGebJahr(gebJahr);
|
||||
setEintrJahr(eintrJahr);
|
||||
}
|
||||
|
||||
public Mitarbeiter(String[] zeilenTeile) throws PersonalException
|
||||
{
|
||||
if (zeilenTeile != null)
|
||||
{
|
||||
// setName();
|
||||
// setGesch();
|
||||
// setEintrJahr();
|
||||
// setGebJahr();
|
||||
|
||||
setAllFields(zeilenTeile);
|
||||
}
|
||||
else
|
||||
throw new PersonalException("Fehler bei Mitarbeiter(String[]): null-Referenz erhalten");
|
||||
}
|
||||
|
||||
setAllFields(zeilenTeile);
|
||||
} else
|
||||
throw new PersonalException("Fehler bei Mitarbeiter(String[]): null-Referenz erhalten");
|
||||
}
|
||||
//------------------------------------ getter ------------------------
|
||||
public String getName()
|
||||
{
|
||||
return name;
|
||||
}
|
||||
|
||||
// ------------------------------------ getter ------------------------
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
public char getGesch()
|
||||
{
|
||||
return gesch;
|
||||
}
|
||||
|
||||
public char getGesch() {
|
||||
return gesch;
|
||||
}
|
||||
public Year getGebJahr()
|
||||
{
|
||||
return gebJahr;
|
||||
}
|
||||
|
||||
public Year getGebJahr() {
|
||||
return gebJahr;
|
||||
}
|
||||
public Year getEintrJahr()
|
||||
{
|
||||
return eintrJahr;
|
||||
}
|
||||
//------------------------------------ setter ------------------------
|
||||
|
||||
public void setName(String name) throws PersonalException
|
||||
{
|
||||
if (name != null)
|
||||
if (name.length() >= 2)
|
||||
this.name = name;
|
||||
else
|
||||
throw new PersonalException("Falscher Parameterwert fuer setName("+name+") !!!");
|
||||
else
|
||||
throw new PersonalException("null-Referenz fuer setName(String name) !!!");
|
||||
}
|
||||
|
||||
public Year getEintrJahr() {
|
||||
return eintrJahr;
|
||||
}
|
||||
// ------------------------------------ setter ------------------------
|
||||
public void setGesch(char gesch) throws PersonalException
|
||||
{
|
||||
if (gesch == 'm' || gesch == 'M' || gesch == 'w' || gesch == 'W' || gesch == 'x' || gesch == 'X' )
|
||||
this.gesch = Character.toLowerCase(gesch); // Character ist "Wrapper"-Klasse von char
|
||||
else
|
||||
throw new PersonalException("Falscher Parameterwert fuer setGesch(" + gesch + ") !!!");
|
||||
}
|
||||
|
||||
public void setName(String name) throws PersonalException {
|
||||
if (name != null)
|
||||
if (name.length() >= 2)
|
||||
this.name = name;
|
||||
else
|
||||
throw new PersonalException("Falscher Parameterwert fuer setName(" + name + ") !!!");
|
||||
else
|
||||
throw new PersonalException("null-Referenz fuer setName(String name) !!!");
|
||||
}
|
||||
public void setGebJahr(Year gebJahr) throws PersonalException
|
||||
{
|
||||
//int aktJahr = Year.now().getValue();
|
||||
Year aktYear = Year.now();
|
||||
if (gebJahr != null)
|
||||
// if (gebJahr.getValue() >= aktJahr-100 && gebJahr.getValue() <= aktJahr )
|
||||
if ( !gebJahr.isBefore(aktYear.minusYears(100)) && !gebJahr.isAfter(aktYear) )
|
||||
this.gebJahr = gebJahr;
|
||||
else
|
||||
throw new PersonalException("Falscher Parameterwert fuer setGebJahr("+gebJahr+") !!!");
|
||||
else
|
||||
throw new PersonalException("null-Referenz fuer setGebJahr(Year gebJahr) !!!");
|
||||
}
|
||||
|
||||
public void setGesch(char gesch) throws PersonalException {
|
||||
if (gesch == 'm' || gesch == 'M' || gesch == 'w' || gesch == 'W' || gesch == 'x' || gesch == 'X')
|
||||
this.gesch = Character.toLowerCase(gesch); // Character ist "Wrapper"-Klasse von char
|
||||
else
|
||||
throw new PersonalException("Falscher Parameterwert fuer setGesch(" + gesch + ") !!!");
|
||||
}
|
||||
public void setEintrJahr(Year eintrJahr) throws PersonalException
|
||||
{
|
||||
if (eintrJahr != null)
|
||||
if (gebJahr != null)
|
||||
{
|
||||
int aktJahr = Year.now().getValue();
|
||||
if (eintrJahr.getValue() >= gebJahr.getValue()+15)
|
||||
if (eintrJahr.getValue() <= aktJahr )
|
||||
this.eintrJahr = eintrJahr;
|
||||
else
|
||||
throw new PersonalException("Falscher Parameterwert fuer setEintrJahr("+eintrJahr+") !!!");
|
||||
else
|
||||
throw new PersonalException("Fehler bei setEintrJahr("+eintrJahr+") -> Person ist zu jung ("+berechneAlter()+")!!!");
|
||||
}
|
||||
else
|
||||
throw new PersonalException("null-Referenz bei gebJahr -> eintrJahr kann nicht geprueft werden !!!");
|
||||
else
|
||||
throw new PersonalException("null-Referenz fuer setEintrJahr(Year eintrJahr) !!!");
|
||||
}
|
||||
|
||||
private void setAllFields(String[] zeilenTeile) throws PersonalException {
|
||||
|
||||
// beim Arbeiten mit Array kann es eine
|
||||
// ArrayIndexOutOfBoundsException geben
|
||||
try {
|
||||
//Angestellter;Alfred; m; 1977; 2022
|
||||
// [0] [1] [2] [3] [4] im Array zeilenTeile
|
||||
setName(zeilenTeile[1].trim()); // trim(): whitespaces "vorne und hinten" entfernen
|
||||
setGesch(zeilenTeile[2].trim().charAt(0)); // z.B. "m" -> 'm'
|
||||
// Integer.parseInt(String)
|
||||
// throws NumberFormatException bei Integer.parseInt
|
||||
setGebJahr( Year.of(Integer.parseInt(zeilenTeile[3].trim())) ); // "1977"
|
||||
// throws NumberFormatException bei Integer.parseInt
|
||||
setEintrJahr(Year.of(Integer.parseInt(zeilenTeile[4].trim()))); // "2022"
|
||||
}
|
||||
catch(ArrayIndexOutOfBoundsException e)
|
||||
{
|
||||
throw new PersonalException("Array-Fehler bei setAllFields(): "
|
||||
+ e.getMessage());
|
||||
}
|
||||
catch (StringIndexOutOfBoundsException e)
|
||||
{
|
||||
throw new PersonalException("Zeichenumwandlungsfehler-Fehler (gesch) bei setAllFields(): "
|
||||
+ e.getMessage());
|
||||
}
|
||||
catch(NumberFormatException e)
|
||||
{
|
||||
throw new PersonalException("Zahlenumwandlungs-Fehler (gebJahr oder eintrJahr) bei setAllFields(): "
|
||||
+ e.getMessage());
|
||||
}
|
||||
catch (DateTimeException e) // wird von Year.of() moeglicherweise "geworfen"
|
||||
{
|
||||
throw new PersonalException("Jahreszahlumwandlungs-Fehler (gebJahr oder eintrJahr) bei setAllFields(): "
|
||||
+ e.getMessage());
|
||||
}
|
||||
}
|
||||
//-------------------------------------- weitere -----------------------
|
||||
public int berechneAlter()
|
||||
{
|
||||
// return 2021 - gebJahr; // ganz schlecht...
|
||||
|
||||
public void setGebJahr(Year gebJahr) throws PersonalException {
|
||||
// int aktJahr = Year.now().getValue();
|
||||
Year aktYear = Year.now();
|
||||
if (gebJahr != null)
|
||||
// if (gebJahr.getValue() >= aktJahr-100 && gebJahr.getValue() <= aktJahr )
|
||||
if (!gebJahr.isBefore(aktYear.minusYears(100)) && !gebJahr.isAfter(aktYear))
|
||||
this.gebJahr = gebJahr;
|
||||
else
|
||||
throw new PersonalException("Falscher Parameterwert fuer setGebJahr(" + gebJahr + ") !!!");
|
||||
else
|
||||
throw new PersonalException("null-Referenz fuer setGebJahr(Year gebJahr) !!!");
|
||||
}
|
||||
// Bessere Loesung in Einzelschritten:
|
||||
// Year datum = Year.now();
|
||||
// int aktJahr = datum.getValue();
|
||||
// int alter = aktJahr - gebJahr;
|
||||
// return alter;
|
||||
|
||||
public void setEintrJahr(Year eintrJahr) throws PersonalException {
|
||||
if (eintrJahr != null)
|
||||
if (gebJahr != null) {
|
||||
int aktJahr = Year.now().getValue();
|
||||
if (eintrJahr.getValue() >= gebJahr.getValue() + 15)
|
||||
if (eintrJahr.getValue() <= aktJahr)
|
||||
this.eintrJahr = eintrJahr;
|
||||
else
|
||||
throw new PersonalException("Falscher Parameterwert fuer setEintrJahr(" + eintrJahr + ") !!!");
|
||||
else
|
||||
throw new PersonalException("Fehler bei setEintrJahr(" + eintrJahr + ") -> Person ist zu jung ("
|
||||
+ berechneAlter() + ")!!!");
|
||||
} else
|
||||
throw new PersonalException("null-Referenz bei gebJahr -> eintrJahr kann nicht geprueft werden !!!");
|
||||
else
|
||||
throw new PersonalException("null-Referenz fuer setEintrJahr(Year eintrJahr) !!!");
|
||||
}
|
||||
// Bessere Loesung in einem Schritt:
|
||||
return (gebJahr != null?Year.now().getValue() - gebJahr.getValue():-99); // Fehlercode
|
||||
}
|
||||
|
||||
private void setAllFields(String[] zeilenTeile) throws PersonalException {
|
||||
public int berechneDienstalter()
|
||||
{
|
||||
return (eintrJahr != null?Year.now().getValue() - eintrJahr.getValue():-99); // Fehlercode
|
||||
}
|
||||
|
||||
// beim Arbeiten mit Array kann es eine
|
||||
// ArrayIndexOutOfBoundsException geben
|
||||
try {
|
||||
// Angestellter;Alfred; m; 1977; 2022
|
||||
// [0] [1] [2] [3] [4] im Array zeilenTeile
|
||||
setName(zeilenTeile[1].trim()); // trim(): whitespaces "vorne und hinten" entfernen
|
||||
setGesch(zeilenTeile[2].trim().charAt(0)); // z.B. "m" -> 'm'
|
||||
// Integer.parseInt(String)
|
||||
// throws NumberFormatException bei Integer.parseInt
|
||||
setGebJahr(Year.of(Integer.parseInt(zeilenTeile[3].trim()))); // "1977"
|
||||
// throws NumberFormatException bei Integer.parseInt
|
||||
setEintrJahr(Year.of(Integer.parseInt(zeilenTeile[4].trim()))); // "2022"
|
||||
} catch (ArrayIndexOutOfBoundsException e) {
|
||||
throw new PersonalException("Array-Fehler bei setAllFields(): " + e.getMessage());
|
||||
} catch (StringIndexOutOfBoundsException e) {
|
||||
throw new PersonalException(
|
||||
"Zeichenumwandlungsfehler-Fehler (gesch) bei setAllFields(): " + e.getMessage());
|
||||
} catch (NumberFormatException e) {
|
||||
throw new PersonalException(
|
||||
"Zahlenumwandlungs-Fehler (gebJahr oder eintrJahr) bei setAllFields(): " + e.getMessage());
|
||||
} catch (DateTimeException e) // wird von Year.of() moeglicherweise "geworfen"
|
||||
{
|
||||
throw new PersonalException(
|
||||
"Jahreszahlumwandlungs-Fehler (gebJahr oder eintrJahr) bei setAllFields(): " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------- weitere -----------------------
|
||||
public int berechneAlter() {
|
||||
// return 2021 - gebJahr; // ganz schlecht...
|
||||
|
||||
// Bessere Loesung in Einzelschritten:
|
||||
// Year datum = Year.now();
|
||||
// int aktJahr = datum.getValue();
|
||||
// int alter = aktJahr - gebJahr;
|
||||
// return alter;
|
||||
|
||||
// Bessere Loesung in einem Schritt:
|
||||
return (gebJahr != null ? Year.now().getValue() - gebJahr.getValue() : -99); // Fehlercode
|
||||
}
|
||||
|
||||
public int berechneDienstalter() {
|
||||
return (eintrJahr != null ? Year.now().getValue() - eintrJahr.getValue() : -99); // Fehlercode
|
||||
}
|
||||
|
||||
// public float berechneGehalt()
|
||||
// {
|
||||
// return 1500f + 50f*berechneDienstalter();
|
||||
// }
|
||||
// public float berechneGehalt()
|
||||
// {
|
||||
// return 1500f + 50f*berechneDienstalter();
|
||||
// }
|
||||
|
||||
// public float berechneGehalt() // zum UMSTELLEN und TESTEN
|
||||
// {
|
||||
// return 0f;
|
||||
// }
|
||||
|
||||
public abstract float berechneGehalt(); // alle Subklassen
|
||||
// MUESSEN diese Methode implementieren
|
||||
// Ausnahme: diese Subklasse ist auch abstrakt
|
||||
|
||||
// public abstract int berechneUrlaubsanspruch() // Beispiel fuer einen
|
||||
// Anwendungsfall einer abstrakten Methode
|
||||
// ;
|
||||
|
||||
// --------------------------------- compareTo -----------------------------
|
||||
|
||||
public abstract float berechneGehalt(); // alle Subklassen
|
||||
// MUESSEN diese Methode implementieren
|
||||
// Ausnahme: diese Subklasse ist auch abstrakt
|
||||
|
||||
// public abstract int berechneUrlaubsanspruch() // Beispiel fuer einen
|
||||
// Anwendungsfall einer abstrakten Methode
|
||||
// ;
|
||||
|
||||
// --------------------------------- compareTo -----------------------------
|
||||
|
||||
@Override
|
||||
public int compareTo(Mitarbeiter o) { // "natuerliche" Reihenfolge von Gehalt
|
||||
if (o != null) {
|
||||
if (o != null)
|
||||
{
|
||||
if (berechneGehalt() > o.berechneGehalt())
|
||||
return 1;
|
||||
else if (berechneGehalt() < o.berechneGehalt())
|
||||
return -1;
|
||||
else
|
||||
return 0;
|
||||
} else // Annahme bis zum ExceptionHandling, dann NullPointerException
|
||||
if (berechneGehalt() < o.berechneGehalt())
|
||||
return -1;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
else // Annahme bis zum ExceptionHandling, dann NullPointerException
|
||||
return 1;
|
||||
}
|
||||
|
||||
// ----------------------------------- innere Klasse
|
||||
// --------------------------------
|
||||
|
||||
|
||||
// ----------------------------------- innere Klasse --------------------------------
|
||||
|
||||
public static class AlterComparator implements Comparator<Mitarbeiter> {
|
||||
|
||||
@Override
|
||||
public int compare(Mitarbeiter o1, Mitarbeiter o2) {
|
||||
|
||||
|
||||
if (o1 != null && o2 != null)
|
||||
if (o1.berechneAlter() > o2.berechneAlter())
|
||||
return 1;
|
||||
@ -218,15 +244,9 @@ public abstract class Mitarbeiter implements Comparable<Mitarbeiter>, Serializab
|
||||
else // o1 == null || o2 == null
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------- equals / hashCode
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(eintrJahr, gebJahr, gesch, name);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// ------------------------- equals / hashCode ---------------
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
@ -239,50 +259,56 @@ public abstract class Mitarbeiter implements Comparable<Mitarbeiter>, Serializab
|
||||
return Objects.equals(eintrJahr, other.eintrJahr) && Objects.equals(gebJahr, other.gebJahr)
|
||||
&& gesch == other.gesch && Objects.equals(name, other.name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(eintrJahr, gebJahr, gesch, name);
|
||||
}
|
||||
// ------------------------------------ toString() / print --------------------------------------
|
||||
public String toString()
|
||||
{
|
||||
String geschlecht;
|
||||
switch(gesch)
|
||||
{
|
||||
case 'm':
|
||||
case 'M': geschlecht = "maennlich"; break;
|
||||
case 'w':
|
||||
case 'W': geschlecht = "weiblich"; break;
|
||||
case 'x':
|
||||
case 'X': geschlecht = "divers"; break;
|
||||
default : geschlecht = "unbekannt";
|
||||
|
||||
// ------------------------------------ toString() / print
|
||||
// --------------------------------------
|
||||
public String toString() {
|
||||
String geschlecht;
|
||||
switch (gesch) {
|
||||
case 'm':
|
||||
case 'M':
|
||||
geschlecht = "maennlich";
|
||||
break;
|
||||
case 'w':
|
||||
case 'W':
|
||||
geschlecht = "weiblich";
|
||||
break;
|
||||
case 'x':
|
||||
case 'X':
|
||||
geschlecht = "divers";
|
||||
break;
|
||||
default:
|
||||
geschlecht = "unbekannt";
|
||||
}
|
||||
return "Name: " + name+
|
||||
", Gesch.: " + geschlecht+
|
||||
", Geb.Jahr: " + (gebJahr != null?gebJahr.getValue():"keines vorhanden")+
|
||||
", Alter: " + berechneAlter()+
|
||||
", Eintr.Jahr: " + (eintrJahr != null?eintrJahr.getValue():"keines vorhanden")+
|
||||
", Dienstalter: "+ berechneDienstalter() +
|
||||
", Gehalt: " + berechneGehalt();
|
||||
}
|
||||
|
||||
}
|
||||
return "Name: " + name + ", Gesch.: " + geschlecht + ", Geb.Jahr: "
|
||||
+ (gebJahr != null ? gebJahr.getValue() : "keines vorhanden") + ", Alter: " + berechneAlter()
|
||||
+ ", Eintr.Jahr: " + (eintrJahr != null ? eintrJahr.getValue() : "keines vorhanden") + ", Dienstalter: "
|
||||
+ berechneDienstalter() + ", Gehalt: " + berechneGehalt();
|
||||
}
|
||||
|
||||
public void print() {
|
||||
System.out.println(this); // System.out.println(toString())
|
||||
}
|
||||
|
||||
public String toStringCsv() {
|
||||
char sep = ';'; // "Trennzeichen" zwischen den Attribut-Werten
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
sb.append(getClass().getSimpleName()).append(sep); // Typ bzw. Klassenbezeichnung
|
||||
sb.append(name).append(sep); // name
|
||||
sb.append(gesch).append(sep); // gesch
|
||||
sb.append(gebJahr).append(sep); // gebJahr
|
||||
sb.append(eintrJahr); // .append(sep); // eintrJahr
|
||||
|
||||
return (sb.toString());
|
||||
}
|
||||
public void print()
|
||||
{
|
||||
System.out.println(this); //System.out.println(toString())
|
||||
}
|
||||
|
||||
public String toStringCsv()
|
||||
{
|
||||
char sep = ';'; // "Trennzeichen" zwischen den Attribut-Werten
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
sb.append(getClass().getSimpleName()).append(sep); // Typ bzw. Klassenbezeichnung
|
||||
sb.append(name).append(sep); // name
|
||||
sb.append(gesch).append(sep); // gesch
|
||||
sb.append(gebJahr).append(sep); // gebJahr
|
||||
sb.append(eintrJahr); // .append(sep); // eintrJahr
|
||||
|
||||
return (sb.toString());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1,45 +1,45 @@
|
||||
package model;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
public class NameComparator implements Comparator<Mitarbeiter> { // Vergleich nach Name (alphabetischer Vergleich)
|
||||
|
||||
@Override
|
||||
public int compare(Mitarbeiter o1, Mitarbeiter o2) {
|
||||
|
||||
if (o1 != null && o2 != null) // notwendig, weil wir ExceptionHandling nicht verwenden koennen
|
||||
{
|
||||
return o1.getName().compareTo(o2.getName()); // positiv, negativ oder 0
|
||||
|
||||
// so geht es vermutlich nicht so schnell...
|
||||
// if (o1.getName().charAt(0) > o2.getName().charAt(0))
|
||||
// return 1;
|
||||
// else
|
||||
// if (o1.getName().charAt(0) < o2.getName().charAt(0))
|
||||
// return -1;
|
||||
// else
|
||||
// if (o1.getName().charAt(1) > o2.getName().charAt(1))
|
||||
//
|
||||
// ... und so weiter bis zum Ende der beiden String, viel zu kompliziert
|
||||
|
||||
// ein weiterer Versuch zum Testen, kompliziert ... und auch falsch
|
||||
// if (o1.getName().compareTo(o2.getName()) > 0)
|
||||
// return 1;
|
||||
// else
|
||||
// if (o1.getName().compareTo(o2.getName()) < 0)
|
||||
// return -1;
|
||||
// else
|
||||
// return 0;
|
||||
|
||||
}
|
||||
else // null-PointerException muss vermieden werden
|
||||
if (o1 == null && o2 != null)
|
||||
return -1;
|
||||
else
|
||||
if (o1 != null && o2 == null)
|
||||
return 1;
|
||||
else // beide null
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
package model;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
public class NameComparator implements Comparator<Mitarbeiter> { // Vergleich nach Name (alphabetischer Vergleich)
|
||||
|
||||
@Override
|
||||
public int compare(Mitarbeiter o1, Mitarbeiter o2) {
|
||||
|
||||
if (o1 != null && o2 != null) // notwendig, weil wir ExceptionHandling nicht verwenden koennen
|
||||
{
|
||||
return o1.getName().compareTo(o2.getName()); // positiv, negativ oder 0
|
||||
|
||||
// so geht es vermutlich nicht so schnell...
|
||||
// if (o1.getName().charAt(0) > o2.getName().charAt(0))
|
||||
// return 1;
|
||||
// else
|
||||
// if (o1.getName().charAt(0) < o2.getName().charAt(0))
|
||||
// return -1;
|
||||
// else
|
||||
// if (o1.getName().charAt(1) > o2.getName().charAt(1))
|
||||
//
|
||||
// ... und so weiter bis zum Ende der beiden String, viel zu kompliziert
|
||||
|
||||
// ein weiterer Versuch zum Testen, kompliziert ... und auch falsch
|
||||
// if (o1.getName().compareTo(o2.getName()) > 0)
|
||||
// return 1;
|
||||
// else
|
||||
// if (o1.getName().compareTo(o2.getName()) < 0)
|
||||
// return -1;
|
||||
// else
|
||||
// return 0;
|
||||
|
||||
}
|
||||
else // null-PointerException muss vermieden werden
|
||||
if (o1 == null && o2 != null)
|
||||
return -1;
|
||||
else
|
||||
if (o1 != null && o2 == null)
|
||||
return 1;
|
||||
else // beide null
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,16 +1,16 @@
|
||||
package model;
|
||||
|
||||
public class PersonalException extends Exception {
|
||||
|
||||
/*
|
||||
* serialVersionUID ist eine Art "Versionsnummer" dieser Klasse
|
||||
* static: dieses Attribut "gehoert" der Klasse, nicht der Instanz
|
||||
* final: nach der ersten Wertzuweisung nicht veraenderbar ("Konstante")
|
||||
*/
|
||||
private static final long serialVersionUID = 2022_03_18__08_28L;
|
||||
|
||||
public PersonalException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
}
|
||||
package model;
|
||||
|
||||
public class PersonalException extends Exception {
|
||||
|
||||
/*
|
||||
* serialVersionUID ist eine Art "Versionsnummer" dieser Klasse
|
||||
* static: dieses Attribut "gehoert" der Klasse, nicht der Instanz
|
||||
* final: nach der ersten Wertzuweisung nicht veraenderbar ("Konstante")
|
||||
*/
|
||||
private static final long serialVersionUID = 2022_03_18__08_28L;
|
||||
|
||||
public PersonalException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -54,7 +54,16 @@ import java.util.List;
|
||||
// 2022-04-01 importMitarbeiterCsc() fuer Angestellte
|
||||
// 2022-04-05 importMitarbeiterCsc fuer Freelancer und Arzt
|
||||
|
||||
// 2022-01-07 doppeltes aufnehmen verhindern, equals, hashcode (Old and new)
|
||||
// 2022-04-07 aufnehmen erweitert um !contains() -> keine doppelstes Aufnehmen
|
||||
|
||||
//2022-06-07: getMitarbeiter() NEU
|
||||
// remove(List) NEU
|
||||
// loadMitarbeiter(String) NEU
|
||||
// loadMitarbeiter() angepasst
|
||||
// saveMitarbeiter(String) NEU
|
||||
// saveMitarbeiter() angepasst
|
||||
// exportMitarbeiter(String) NEU
|
||||
// exportMitarbeiter() angepasst
|
||||
|
||||
public class Personalbuero {
|
||||
private ArrayList<Mitarbeiter> mitarbeiter; // eine ArrayList ist "getypt"
|
||||
@ -72,6 +81,10 @@ public class Personalbuero {
|
||||
// //return anzahl;
|
||||
// return mitarbeiter.size();
|
||||
// }
|
||||
|
||||
public List<Mitarbeiter> getMitarbeiter() {
|
||||
return mitarbeiter; // Achtung: Vollzugriff auf Collection
|
||||
}
|
||||
// -------------------------------- weitere ------------------------------------
|
||||
|
||||
public boolean aufnehmen(Mitarbeiter ma) throws PersonalException {
|
||||
@ -80,11 +93,10 @@ public class Personalbuero {
|
||||
// if (anzahl < mitarbeiter.length)
|
||||
// {
|
||||
// mitarbeiter[anzahl] = ma;
|
||||
if (!mitarbeiter.contains(ma)) {
|
||||
if (!mitarbeiter.contains(ma))
|
||||
return mitarbeiter.add(ma); // liefert immer true
|
||||
} else {
|
||||
throw new PersonalException("Fehler bei aufnehmen(): Mitarbeiter/in schon vorhanden");
|
||||
}
|
||||
else
|
||||
throw new PersonalException("Fehler bei aufnehmen(): Mitarbeiter/in schon vorhanden\n" + ma);
|
||||
// anzahl ++;
|
||||
// return true;
|
||||
// }
|
||||
@ -318,59 +330,114 @@ public class Personalbuero {
|
||||
// return -1f;
|
||||
}
|
||||
}
|
||||
|
||||
public void remove(List<Mitarbeiter> auswahl) throws PersonalException
|
||||
{
|
||||
if (auswahl != null)
|
||||
mitarbeiter.removeAll(auswahl);
|
||||
else
|
||||
throw new PersonalException("Fehler bei remove(auswahl): null-Referenz fuer auswahl erhalten");
|
||||
}
|
||||
|
||||
// --------------------------------- files ----------------------------------
|
||||
public void saveMitarbeiter(String strPfadName) throws PersonalException {
|
||||
if(strPfadName != null)
|
||||
{
|
||||
try ( // try with ressources -> close() erfolgt "automatisch"
|
||||
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(strPfadName));) {
|
||||
// hier erfolgt das "Speichern"
|
||||
oos.writeObject(mitarbeiter);
|
||||
|
||||
} catch (FileNotFoundException e) {
|
||||
throw new PersonalException("Datei-Fehler bei saveMitarbeiter(): " + e.getMessage());
|
||||
} catch (IOException e) {
|
||||
throw new PersonalException("Eingabe/Ausgabe-Fehler bei saveMitarbeiter(): " + e.getMessage());
|
||||
}
|
||||
}
|
||||
else
|
||||
throw new PersonalException("Fehler bei saveMitarbeiter(): null-Referenz fuer strPfadName erhalten");
|
||||
}
|
||||
public void saveMitarbeiter() throws PersonalException {
|
||||
|
||||
String fSep = System.getProperty("file.separator");
|
||||
//String strPfadName = "c:\\scratch\\mitarbeiter.ser";
|
||||
String strPfadName = "c:"+ fSep + "scratch" + fSep + "mitarbeiter.ser";
|
||||
|
||||
try ( // try with ressources -> close() erfolgt "automatisch"
|
||||
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(strPfadName));) {
|
||||
// hier erfolgt das "Speichern"
|
||||
oos.writeObject(mitarbeiter);
|
||||
|
||||
} catch (FileNotFoundException e) {
|
||||
throw new PersonalException("Datei-Fehler bei saveMitarbeiter(): " + e.getMessage());
|
||||
} catch (IOException e) {
|
||||
throw new PersonalException("Eingabe/Ausgabe-Fehler bei saveMitarbeiter(): " + e.getMessage());
|
||||
}
|
||||
saveMitarbeiter(strPfadName);
|
||||
// try ( // try with ressources -> close() erfolgt "automatisch"
|
||||
// ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(strPfadName));) {
|
||||
// // hier erfolgt das "Speichern"
|
||||
// oos.writeObject(mitarbeiter);
|
||||
//
|
||||
// } catch (FileNotFoundException e) {
|
||||
// throw new PersonalException("Datei-Fehler bei saveMitarbeiter(): " + e.getMessage());
|
||||
// } catch (IOException e) {
|
||||
// throw new PersonalException("Eingabe/Ausgabe-Fehler bei saveMitarbeiter(): " + e.getMessage());
|
||||
// }
|
||||
}
|
||||
|
||||
// loadMitarbeiter Variante 2 OHNE suppressWarning -> empfohlen
|
||||
public void loadMitarbeiter(String strPfadName) throws PersonalException {
|
||||
if (strPfadName != null)
|
||||
{
|
||||
|
||||
try ( ObjectInputStream ois =
|
||||
new ObjectInputStream(new FileInputStream(strPfadName)))
|
||||
{
|
||||
|
||||
List <?> tempMitarbeiter = (List <?>) ois.readObject();
|
||||
|
||||
mitarbeiter.clear(); // ersetzen und NICHT hinzufuegen
|
||||
|
||||
for (Object o : tempMitarbeiter)
|
||||
{
|
||||
if (o instanceof Mitarbeiter)
|
||||
{
|
||||
aufnehmen((Mitarbeiter)o);
|
||||
}
|
||||
}
|
||||
|
||||
} catch (FileNotFoundException e) {
|
||||
throw new PersonalException("Datei-Fehler bei loadMitarbeiter(): " + e.getMessage());
|
||||
} catch (IOException e) {
|
||||
throw new PersonalException("Eingabe/Ausgabe-Fehler bei loadMitarbeiter(): " + e.getMessage());
|
||||
} catch (ClassNotFoundException e) {
|
||||
throw new PersonalException("Klassen-Fehler bei loadMitarbeiter(): " + e.getMessage());
|
||||
}
|
||||
}
|
||||
else
|
||||
throw new PersonalException("Fehler bei loadMitarbeiter(): null-Referenz fuer strPfadName erhalten");
|
||||
}
|
||||
public void loadMitarbeiter() throws PersonalException
|
||||
{
|
||||
|
||||
String fSep = System.getProperty("file.separator");
|
||||
//String strPfadName = "c:\\scratch\\mitarbeiter.ser";
|
||||
String strPfadName = "c:"+ fSep + "scratch" + fSep + "mitarbeiter.ser";
|
||||
|
||||
loadMitarbeiter(strPfadName);
|
||||
|
||||
try ( ObjectInputStream ois =
|
||||
new ObjectInputStream(new FileInputStream(strPfadName)))
|
||||
{
|
||||
|
||||
List <?> tempMitarbeiter = (List <?>) ois.readObject();
|
||||
|
||||
mitarbeiter.clear(); // ersetzen und NICHT hinzufuegen
|
||||
|
||||
for (Object o : tempMitarbeiter)
|
||||
{
|
||||
if (o instanceof Mitarbeiter)
|
||||
{
|
||||
aufnehmen((Mitarbeiter)o);
|
||||
}
|
||||
}
|
||||
|
||||
} catch (FileNotFoundException e) {
|
||||
throw new PersonalException("Datei-Fehler bei loadMitarbeiter(): " + e.getMessage());
|
||||
} catch (IOException e) {
|
||||
throw new PersonalException("Eingabe/Ausgabe-Fehler bei loadMitarbeiter(): " + e.getMessage());
|
||||
} catch (ClassNotFoundException e) {
|
||||
throw new PersonalException("Klassen-Fehler bei loadMitarbeiter(): " + e.getMessage());
|
||||
}
|
||||
// try ( ObjectInputStream ois =
|
||||
// new ObjectInputStream(new FileInputStream(strPfadName)))
|
||||
// {
|
||||
//
|
||||
// List <?> tempMitarbeiter = (List <?>) ois.readObject();
|
||||
//
|
||||
// mitarbeiter.clear(); // ersetzen und NICHT hinzufuegen
|
||||
//
|
||||
// for (Object o : tempMitarbeiter)
|
||||
// {
|
||||
// if (o instanceof Mitarbeiter)
|
||||
// {
|
||||
// aufnehmen((Mitarbeiter)o);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// } catch (FileNotFoundException e) {
|
||||
// throw new PersonalException("Datei-Fehler bei loadMitarbeiter(): " + e.getMessage());
|
||||
// } catch (IOException e) {
|
||||
// throw new PersonalException("Eingabe/Ausgabe-Fehler bei loadMitarbeiter(): " + e.getMessage());
|
||||
// } catch (ClassNotFoundException e) {
|
||||
// throw new PersonalException("Klassen-Fehler bei loadMitarbeiter(): " + e.getMessage());
|
||||
// }
|
||||
}
|
||||
|
||||
// Variante1: es geht "typsicherer" -> Variante2
|
||||
@ -393,26 +460,47 @@ public class Personalbuero {
|
||||
// throw new PersonalException("Klassen-Fehler bei loadMitarbeiter(): " + e.getMessage());
|
||||
// }
|
||||
// }
|
||||
|
||||
public void exportMitarbeiter(String strPfadName) throws PersonalException {
|
||||
String nLn = System.getProperty("line.separator");
|
||||
if (strPfadName != null)
|
||||
{
|
||||
try ( BufferedWriter bw = new BufferedWriter(new FileWriter(strPfadName)))
|
||||
{
|
||||
for (Mitarbeiter mit : mitarbeiter)
|
||||
{
|
||||
//bw.write(mit.toString() + "\n");
|
||||
bw.write(mit.toString() + nLn); // mit Line-Separator
|
||||
}
|
||||
|
||||
} catch (IOException e) {
|
||||
throw new PersonalException("Eingabe/Ausgabe-Fehler bei exportMitarbeiter()"
|
||||
+ e.getMessage());
|
||||
}
|
||||
}
|
||||
else
|
||||
throw new PersonalException("Fehler bei exportMitarbeiter(): null-Referenz fuer strPfadName erhalten");
|
||||
}
|
||||
|
||||
public void exportMitarbeiter() throws PersonalException
|
||||
{
|
||||
|
||||
String fSep = System.getProperty("file.separator");
|
||||
String strPfadName = "c:"+ fSep + "scratch" + fSep + "mitarbeiter.txt";
|
||||
String nLn = System.getProperty("line.separator");
|
||||
|
||||
try ( BufferedWriter bw = new BufferedWriter(new FileWriter(strPfadName)))
|
||||
{
|
||||
for (Mitarbeiter mit : mitarbeiter)
|
||||
{
|
||||
//bw.write(mit.toString() + "\n");
|
||||
bw.write(mit.toString() + nLn); // mit Line-Separator
|
||||
}
|
||||
|
||||
} catch (IOException e) {
|
||||
throw new PersonalException("Eingabe/Ausgabe-Fehler bei exportMitarbeiter()"
|
||||
+ e.getMessage());
|
||||
}
|
||||
exportMitarbeiter(strPfadName);
|
||||
// String nLn = System.getProperty("line.separator");
|
||||
// try ( BufferedWriter bw = new BufferedWriter(new FileWriter(strPfadName)))
|
||||
// {
|
||||
// for (Mitarbeiter mit : mitarbeiter)
|
||||
// {
|
||||
// //bw.write(mit.toString() + "\n");
|
||||
// bw.write(mit.toString() + nLn); // mit Line-Separator
|
||||
// }
|
||||
//
|
||||
// } catch (IOException e) {
|
||||
// throw new PersonalException("Eingabe/Ausgabe-Fehler bei exportMitarbeiter()"
|
||||
// + e.getMessage());
|
||||
// }
|
||||
}
|
||||
|
||||
public void exportMitarbeiterCsv() throws PersonalException
|
||||
|
@ -1,34 +0,0 @@
|
||||
package model;
|
||||
|
||||
public class PersonalbueroException extends Exception {
|
||||
|
||||
// public PersonalbueroException() {
|
||||
// // TODO Auto-generated constructor stub
|
||||
// }
|
||||
|
||||
/**
|
||||
* "Versionnumber" of class
|
||||
*/
|
||||
private static final long serialVersionUID = 2022_03_18_12_50L;
|
||||
|
||||
public PersonalbueroException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
// public PersonalbueroException(Throwable cause) {
|
||||
// super(cause);
|
||||
// // TODO Auto-generated constructor stub
|
||||
// }
|
||||
//
|
||||
// public PersonalbueroException(String message, Throwable cause) {
|
||||
// super(message, cause);
|
||||
// // TODO Auto-generated constructor stub
|
||||
// }
|
||||
//
|
||||
// public PersonalbueroException(String message, Throwable cause, boolean enableSuppression,
|
||||
// boolean writableStackTrace) {
|
||||
// super(message, cause, enableSuppression, writableStackTrace);
|
||||
// // TODO Auto-generated constructor stub
|
||||
// }
|
||||
|
||||
}
|
@ -1,2 +0,0 @@
|
||||
module Personalbuero {
|
||||
}
|
@ -1,43 +1,43 @@
|
||||
package test;
|
||||
|
||||
import java.time.Year;
|
||||
import model.Angestellter;
|
||||
import model.Arzt;
|
||||
import model.Freelancer;
|
||||
import model.PersonalException;
|
||||
import model.Personalbuero;
|
||||
|
||||
// 2022-03-31 um Arzt erweitert
|
||||
|
||||
public class TestExport
|
||||
{
|
||||
public static void main(String[] args)
|
||||
{
|
||||
String nLn = System.getProperty("line.separator");
|
||||
|
||||
System.out.println("+++++++++++++++++++++++ testExportCsvMitarbeiter +++++++++++++++++++++++++\n");
|
||||
try {
|
||||
Personalbuero pb = new Personalbuero();
|
||||
|
||||
Angestellter a1 = new Angestellter("Alfred", 'm', Year.of(1977), Year.now());
|
||||
pb.aufnehmen(a1);
|
||||
|
||||
Freelancer f2 = new Freelancer("Anna", 'w', Year.of(1976), Year.of(2002), 100f, 10);
|
||||
pb.aufnehmen(f2);
|
||||
|
||||
Arzt ar1 = new Arzt("Wolfgang", 'm', Year.of(1964), Year.now(), 40, 1200f);
|
||||
pb.aufnehmen(ar1);
|
||||
|
||||
System.out.println(pb); // Alfred, Anna, Wolfgang
|
||||
System.out.println();
|
||||
|
||||
pb.exportMitarbeiterCsv();
|
||||
System.out.println("exportMitarbeiterCsv() wurde ausgefuehrt");
|
||||
}
|
||||
catch (PersonalException e)
|
||||
{
|
||||
System.out.println("!!! Fehler bei TestExport !!!" +nLn+ e.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
package test;
|
||||
|
||||
import java.time.Year;
|
||||
import model.Angestellter;
|
||||
import model.Arzt;
|
||||
import model.Freelancer;
|
||||
import model.PersonalException;
|
||||
import model.Personalbuero;
|
||||
|
||||
// 2022-03-31 um Arzt erweitert
|
||||
|
||||
public class TestExport
|
||||
{
|
||||
public static void main(String[] args)
|
||||
{
|
||||
String nLn = System.getProperty("line.separator");
|
||||
|
||||
System.out.println("+++++++++++++++++++++++ testExportCsvMitarbeiter +++++++++++++++++++++++++\n");
|
||||
try {
|
||||
Personalbuero pb = new Personalbuero();
|
||||
|
||||
Angestellter a1 = new Angestellter("Alfred", 'm', Year.of(1977), Year.now());
|
||||
pb.aufnehmen(a1);
|
||||
|
||||
Freelancer f2 = new Freelancer("Anna", 'w', Year.of(1976), Year.of(2002), 100f, 10);
|
||||
pb.aufnehmen(f2);
|
||||
|
||||
Arzt ar1 = new Arzt("Wolfgang", 'm', Year.of(1964), Year.now(), 40, 1200f);
|
||||
pb.aufnehmen(ar1);
|
||||
|
||||
System.out.println(pb); // Alfred, Anna, Wolfgang
|
||||
System.out.println();
|
||||
|
||||
pb.exportMitarbeiterCsv();
|
||||
System.out.println("exportMitarbeiterCsv() wurde ausgefuehrt");
|
||||
}
|
||||
catch (PersonalException e)
|
||||
{
|
||||
System.out.println("!!! Fehler bei TestExport !!!" +nLn+ e.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -1,66 +1,66 @@
|
||||
package test;
|
||||
|
||||
import java.time.Year;
|
||||
import model.Angestellter;
|
||||
import model.Freelancer;
|
||||
import model.PersonalException;
|
||||
import model.Personalbuero;
|
||||
|
||||
// 2022-04-05
|
||||
|
||||
public class TestImport
|
||||
{
|
||||
public static void main(String[] args)
|
||||
{
|
||||
String nLn = System.getProperty("line.separator");
|
||||
|
||||
try
|
||||
{
|
||||
Personalbuero pb = new Personalbuero();
|
||||
pb.aufnehmen(new Angestellter("Hans", 'x', Year.of(1965), Year.of(1985)));
|
||||
System.out.println(pb);
|
||||
System.out.println();
|
||||
|
||||
// zeilenTeile-Konstruktoren testen
|
||||
// TODO FUE Freelancer
|
||||
// TODO FUE Arzt
|
||||
|
||||
// pb.aufnehmen(new Angestellter(new String[] {})); // Array-Fehler: Index 1 out of bounds for length 0
|
||||
// pb.aufnehmen(new Angestellter(new String[] {"", "", "", "",""})); // Fehler: falscher Parameterwert name
|
||||
// pb.aufnehmen(new Angestellter(new String[] {"", "Hannes", "", "",""})); // Fehler: falscher Parameterwert gesch
|
||||
// pb.aufnehmen(new Angestellter(new String[] {"", "Hannes", "m", "neunzehnhundertfuenfundsechzig",""})); // Fehler: falscher Paramterwert gebJahr
|
||||
// pb.aufnehmen(new Angestellter(new String[] {"", "Hannes", "m", "1965","neunzehnhundertfuenfundachzig"})); // Fehler: falscher Paramterwert eintrJahr
|
||||
pb.aufnehmen(new Angestellter(new String[] {"Angestellter", "Hannes", "m", "1965","1985"}));
|
||||
|
||||
System.out.println(pb); // Hans, Hannes
|
||||
System.out.println();
|
||||
|
||||
pb.importMitarbeiterCsv();
|
||||
System.out.println(pb); // Hans, Hannes, Alfred, Anna, Wolfgang
|
||||
System.out.println();
|
||||
|
||||
try {
|
||||
Freelancer f2 = new Freelancer("Anna", 'w', Year.of(1976), Year.of(2002), 100f, 10);
|
||||
pb.aufnehmen(f2); // Fehler schon vorhanden // TODO kein Fehler
|
||||
}
|
||||
catch (PersonalException e) {
|
||||
System.out.println("!!! Fehler bei TestImport !!!" +nLn+ e.getMessage());
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
System.out.println(pb); // Hans, Hannes, Alfred, Anna, Wolfgang
|
||||
System.out.println();
|
||||
|
||||
Angestellter a1 = new Angestellter("Alfred", 'm', Year.of(1977), Year.now());
|
||||
pb.aufnehmen(a1); // Fehler schon vorhanden // TODO kein Fehler
|
||||
|
||||
System.out.println(pb); // Hans, Hannes, Alfred, Anna, Wolfgang
|
||||
System.out.println();
|
||||
|
||||
}
|
||||
catch (PersonalException e)
|
||||
{
|
||||
System.out.println("!!! Fehler bei TestImport !!!" +nLn+ e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
package test;
|
||||
|
||||
import java.time.Year;
|
||||
import model.Angestellter;
|
||||
import model.Freelancer;
|
||||
import model.PersonalException;
|
||||
import model.Personalbuero;
|
||||
|
||||
// 2022-04-05
|
||||
|
||||
public class TestImport
|
||||
{
|
||||
public static void main(String[] args)
|
||||
{
|
||||
String nLn = System.getProperty("line.separator");
|
||||
|
||||
try
|
||||
{
|
||||
Personalbuero pb = new Personalbuero();
|
||||
pb.aufnehmen(new Angestellter("Hans", 'x', Year.of(1965), Year.of(1985)));
|
||||
System.out.println(pb);
|
||||
System.out.println();
|
||||
|
||||
// zeilenTeile-Konstruktoren testen
|
||||
// TODO FUE Freelancer
|
||||
// TODO FUE Arzt
|
||||
|
||||
// pb.aufnehmen(new Angestellter(new String[] {})); // Array-Fehler: Index 1 out of bounds for length 0
|
||||
// pb.aufnehmen(new Angestellter(new String[] {"", "", "", "",""})); // Fehler: falscher Parameterwert name
|
||||
// pb.aufnehmen(new Angestellter(new String[] {"", "Hannes", "", "",""})); // Fehler: falscher Parameterwert gesch
|
||||
// pb.aufnehmen(new Angestellter(new String[] {"", "Hannes", "m", "neunzehnhundertfuenfundsechzig",""})); // Fehler: falscher Paramterwert gebJahr
|
||||
// pb.aufnehmen(new Angestellter(new String[] {"", "Hannes", "m", "1965","neunzehnhundertfuenfundachzig"})); // Fehler: falscher Paramterwert eintrJahr
|
||||
pb.aufnehmen(new Angestellter(new String[] {"Angestellter", "Hannes", "m", "1965","1985"}));
|
||||
|
||||
System.out.println(pb); // Hans, Hannes
|
||||
System.out.println();
|
||||
|
||||
pb.importMitarbeiterCsv();
|
||||
System.out.println(pb); // Hans, Hannes, Alfred, Anna, Wolfgang
|
||||
System.out.println();
|
||||
|
||||
try {
|
||||
Freelancer f2 = new Freelancer("Anna", 'w', Year.of(1976), Year.of(2002), 100f, 10);
|
||||
pb.aufnehmen(f2); // Fehler schon vorhanden // TODO kein Fehler
|
||||
}
|
||||
catch (PersonalException e) {
|
||||
System.out.println("!!! Fehler bei TestImport !!!" +nLn+ e.getMessage());
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
System.out.println(pb); // Hans, Hannes, Alfred, Anna, Wolfgang
|
||||
System.out.println();
|
||||
|
||||
Angestellter a1 = new Angestellter("Alfred", 'm', Year.of(1977), Year.now());
|
||||
pb.aufnehmen(a1); // Fehler schon vorhanden // TODO kein Fehler
|
||||
|
||||
System.out.println(pb); // Hans, Hannes, Alfred, Anna, Wolfgang
|
||||
System.out.println();
|
||||
|
||||
}
|
||||
catch (PersonalException e)
|
||||
{
|
||||
System.out.println("!!! Fehler bei TestImport !!!" +nLn+ e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,428 +1,429 @@
|
||||
package test;
|
||||
|
||||
// 2022-03-25 4BAIF
|
||||
// 2022-03-21 umgestellt auf EH
|
||||
// 2022-03-22 mit testSaveMitarbeiter und testLoadMitarbeiter
|
||||
// 2022-03-25 mit testExportMitarbeiter();
|
||||
|
||||
import java.time.Year;
|
||||
|
||||
import model.Angestellter;
|
||||
import model.Freelancer;
|
||||
import model.PersonalException;
|
||||
import model.Personalbuero;
|
||||
|
||||
public class TestPersonalbueroMain {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
try {
|
||||
// System.out.println("------------- Testmethoden fuer TestAngestellter ---------------\n");
|
||||
// test.TestAngestellter.testAngestellter();
|
||||
// System.out.println();
|
||||
// System.out.println("-------------- Testmethoden fuer TestArzt ---------------\\n\"");
|
||||
// test.TestArzt.testArzt();
|
||||
// System.out.println();
|
||||
|
||||
// testSortiereMitarbeiter();
|
||||
// testSortiereName();
|
||||
// testSortiereAlter();
|
||||
// testSortiereDienstalter();
|
||||
|
||||
// testKuendigeName();
|
||||
// testKuendigeGehalt();
|
||||
|
||||
testSaveMitarbeiter();
|
||||
testLoadMitarbeiter();
|
||||
|
||||
testExportMitarbeiter();
|
||||
|
||||
} catch (Exception e) {
|
||||
System.out.println("TestPersonalbueroMain: ein unerwarteter Ausnahme-Fehler ist aufgetreten");
|
||||
System.out.println("Erhaltene Fehlermeldung und StackTrace:");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private static void testExportMitarbeiter() {
|
||||
|
||||
System.out.println("+++++++++++++++++++++++ testExportMitarbeiter +++++++++++++++++++++++++\n");
|
||||
|
||||
try {
|
||||
Personalbuero pb = new Personalbuero();
|
||||
|
||||
Angestellter a1 = new Angestellter("Alfred", 'm', Year.of(1977), Year.now());
|
||||
pb.aufnehmen(a1);
|
||||
Freelancer f2 = new Freelancer("Anna", 'w', Year.of(1976), Year.of(2002), 100f, 10); // 1000
|
||||
pb.aufnehmen(f2);
|
||||
|
||||
System.out.println(pb); // Alfred / Anna
|
||||
System.out.println();
|
||||
|
||||
pb.exportMitarbeiter();
|
||||
System.out.println("Die Mitarbeiter wurden exportiert");
|
||||
|
||||
} catch (PersonalException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void testSaveMitarbeiter() {
|
||||
System.out.println("+++++++++++++++++++++++ testSaveMitarbeiter +++++++++++++++++++++++++\n");
|
||||
|
||||
Personalbuero pb = new Personalbuero();
|
||||
System.out.println(pb);
|
||||
System.out.println();
|
||||
|
||||
try {
|
||||
pb.saveMitarbeiter();
|
||||
System.out.println("saveMitarbeiter() wurde ausgefuehrt");
|
||||
} catch (PersonalException e) {
|
||||
System.out.println(e.getMessage());
|
||||
// e.printStackTrace();
|
||||
}
|
||||
System.out.println();
|
||||
|
||||
// ein Mitarbeiter
|
||||
Angestellter a1;
|
||||
try {
|
||||
a1 = new Angestellter("Alfred", 'm', Year.of(1977), Year.now());
|
||||
pb.aufnehmen(a1);
|
||||
System.out.println(pb); // 1 MA: Angestellter Alfred
|
||||
System.out.println();
|
||||
|
||||
pb.saveMitarbeiter();
|
||||
System.out.println("saveMitarbeiter() wurde ausgefuehrt");
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb); // 1 MA: Angestellter Alfred
|
||||
System.out.println();
|
||||
|
||||
} catch (PersonalException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void testLoadMitarbeiter() {
|
||||
System.out.println("+++++++++++++++++++++++ testLoadMitarbeiter +++++++++++++++++++++++++\n");
|
||||
|
||||
try {
|
||||
Personalbuero pb = new Personalbuero();
|
||||
|
||||
Freelancer f2 = new Freelancer("Anna", 'w', Year.of(1976), Year.of(2002), 100f, 10); // 1000
|
||||
pb.aufnehmen(f2);
|
||||
System.out.println(pb); // // Anna
|
||||
System.out.println();
|
||||
|
||||
pb.loadMitarbeiter();
|
||||
System.out.println("loadMitarbeiter() wurde ausgefuehrt");
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb); // 1 MA: Angestellter Alfred
|
||||
System.out.println();
|
||||
|
||||
} catch (PersonalException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public static void testKuendigeGehalt() {
|
||||
try {
|
||||
System.out.println("+++++++++++++++++++++++ testKuendigeGehalt +++++++++++++++++++++++++\n");
|
||||
|
||||
Personalbuero pb = new Personalbuero();
|
||||
System.out.println(pb);
|
||||
System.out.println();
|
||||
|
||||
try {
|
||||
System.out.println(pb.kuendigen(-1f));
|
||||
System.out.println();
|
||||
|
||||
} catch (PersonalException e) {
|
||||
System.out.println(e.getMessage()); // Fehlermeldung
|
||||
}
|
||||
|
||||
// ein Mitarbeiter
|
||||
Angestellter a1 = new Angestellter("Alfred", 'm', Year.of(1977), Year.now()); // 1500
|
||||
pb.aufnehmen(a1);
|
||||
System.out.println(pb); // 1 MA: Angestellter Alfred
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb.kuendigen(1500f)); // 0.0
|
||||
System.out.println();
|
||||
|
||||
// zwei Mitarbeiter
|
||||
Freelancer f2 = new Freelancer("Anna", 'w', Year.of(1976), Year.of(2002), 100f, 10); // 1000
|
||||
pb.aufnehmen(f2);
|
||||
System.out.println(pb); // 2 MA: Angestellter Alfred, Freelancer Anna
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb.kuendigen(1500f)); // 0.0
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb); // 2 MA: Angestellter Alfred, Freelancer Anna
|
||||
System.out.println();
|
||||
|
||||
// drei Mitarbeiter
|
||||
Freelancer f3 = new Freelancer("Adi", 'w', Year.of(1996), Year.of(2022), 100f, 20); // 2000
|
||||
pb.aufnehmen(f3);
|
||||
System.out.println(pb); // 3 MA: Angestellter Alfred, Freelancer Anna, Freelancer Adi
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb.kuendigen(1999.9f)); // 2000.0
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb); // 2 MA: Angestellter Alfred, Freelancer Anna
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb.kuendigen(999.9f)); // 2500.0
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb); // keine MA
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb.kuendigen(-1f)); // Fehler negatives Gehalt
|
||||
|
||||
} catch (PersonalException e) {
|
||||
System.out.println("Fehler in testKuendigenGehalt(): " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public static void testKuendigeName() {
|
||||
try {
|
||||
System.out.println("+++++++++++++++++++++++ testkuendigeName +++++++++++++++++++++++++\n");
|
||||
|
||||
Personalbuero pb = new Personalbuero();
|
||||
System.out.println(pb); // keine MA
|
||||
System.out.println();
|
||||
|
||||
try {
|
||||
System.out.println(pb.kuendigen("")); // Fehler keine MA -1
|
||||
System.out.println();
|
||||
|
||||
} catch (PersonalException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
|
||||
Angestellter a1 = new Angestellter("Elisa", 'w', Year.of(2000), Year.of(2020)); // Elisa 1600
|
||||
Freelancer f1 = new Freelancer("Alfred", 'm', Year.of(1980), Year.now(), 100f, 10); // Alfred 1000
|
||||
|
||||
System.out.println(pb.aufnehmen(a1)); // true Elisa
|
||||
System.out.println(pb.aufnehmen(f1)); // true Alfred
|
||||
System.out.println(pb); // zwei "Mitarbeiter": Elisa, Alfred
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb.kuendigen("Anna")); // 0
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb); // zwei "Mitarbeiter": Elisa, Alfred
|
||||
System.out.println();
|
||||
|
||||
Freelancer f2 = new Freelancer(100f, 10); // Berta 1000
|
||||
f2.setName("Berta");
|
||||
|
||||
System.out.println(pb.aufnehmen(f2)); // true Berta
|
||||
System.out.println(pb); // drei "Mitarbeiter": Elisa, Alfred, Berta
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb.kuendigen("Alfred")); // 1
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb); // zwei "Mitarbeiter": Elisa, Berta
|
||||
System.out.println();
|
||||
|
||||
Angestellter a2 = new Angestellter("Berta", 'w', Year.of(1971), Year.now());
|
||||
System.out.println(pb.aufnehmen(a2)); // true Berta
|
||||
|
||||
System.out.println(pb); // drei "Mitarbeiter": Elisa, Berta, Berta
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb.kuendigen("Berta")); // 2
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb); // ein "Mitarbeiter": Elisa
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb.kuendigen("Elisa")); // 1
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb); // keine MA
|
||||
System.out.println();
|
||||
|
||||
} catch (PersonalException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public static void testSortiereMitarbeiter() {
|
||||
try {
|
||||
System.out.println("+++++++++++++++++++++++ testSortiereMitarbeiter +++++++++++++++++++++++++\n");
|
||||
Personalbuero pb = new Personalbuero();
|
||||
System.out.println(pb); // keine MA
|
||||
System.out.println();
|
||||
|
||||
pb.sortiereMitarbeiter(); // nichts sollte passieren
|
||||
|
||||
System.out.println(pb); // keine MA
|
||||
System.out.println();
|
||||
|
||||
Angestellter a2 = new Angestellter("Alfred", 'm', Year.of(1963), Year.of(2007));
|
||||
System.out.println(a2);
|
||||
Freelancer f1 = new Freelancer("Eva", 'w', Year.of(1980), Year.of(2001), 100f, 15);
|
||||
System.out.println(f1);
|
||||
Freelancer f2 = new Freelancer("Heinz", 'm', Year.of(2002), Year.of(2022), 10f, 125);
|
||||
System.out.println(f2);
|
||||
Freelancer f3 = new Freelancer("Anna", 'w', Year.of(1990), Year.of(2007), 100f, 30);
|
||||
System.out.println(f3);
|
||||
Freelancer f4 = new Freelancer("Walter", 'm', Year.of(1980), Year.of(2002), 25f, 100);
|
||||
System.out.println(f4);
|
||||
System.out.println();
|
||||
|
||||
pb.aufnehmen(a2);
|
||||
pb.aufnehmen(f1);
|
||||
pb.aufnehmen(f2);
|
||||
pb.aufnehmen(f3);
|
||||
pb.aufnehmen(f4);
|
||||
System.out.println(pb); // a2 2250, f1 1500, f2 1250 , f3 3000, f4 2500
|
||||
System.out.println();
|
||||
|
||||
pb.sortiereMitarbeiter();
|
||||
|
||||
System.out.println(pb); // f2 1250, f1 1500, a2 2250, f4 2500, f3 3000
|
||||
System.out.println();
|
||||
|
||||
} catch (PersonalException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public static void testSortiereName() {
|
||||
try {
|
||||
System.out.println("+++++++++++++++++++++++ testSortiereName +++++++++++++++++++++++++\n");
|
||||
Personalbuero pb = new Personalbuero();
|
||||
System.out.println(pb); // keine MA
|
||||
System.out.println();
|
||||
|
||||
pb.sortiereNamen(); // nichts sollte passieren
|
||||
|
||||
System.out.println(pb); // keine MA
|
||||
System.out.println();
|
||||
|
||||
Angestellter a2 = new Angestellter("Alfred", 'm', Year.of(1963), Year.of(2007));
|
||||
System.out.println(a2);
|
||||
Freelancer f1 = new Freelancer("Eva", 'w', Year.of(1980), Year.of(2001), 100f, 15);
|
||||
System.out.println(f1);
|
||||
Freelancer f2 = new Freelancer("Heinz", 'm', Year.of(2002), Year.of(2022), 10f, 125);
|
||||
System.out.println(f2);
|
||||
Freelancer f3 = new Freelancer("Anna", 'w', Year.of(1990), Year.of(2007), 100f, 30);
|
||||
System.out.println(f3);
|
||||
Freelancer f4 = new Freelancer("Walter", 'm', Year.of(1980), Year.of(2002), 25f, 100);
|
||||
System.out.println(f4);
|
||||
System.out.println();
|
||||
|
||||
pb.aufnehmen(a2);
|
||||
pb.aufnehmen(f1);
|
||||
pb.aufnehmen(f2);
|
||||
pb.aufnehmen(f3);
|
||||
pb.aufnehmen(f4);
|
||||
System.out.println(pb); // a2 Alfred, f1 Eva, f2 Heinz , f3 Anna, f4 Walter
|
||||
System.out.println();
|
||||
|
||||
pb.sortiereNamen();
|
||||
|
||||
System.out.println(pb); // a2 Alfred, f3 Anna, f1 Eva, f2 Heinz, f4 Walter
|
||||
System.out.println();
|
||||
|
||||
} catch (PersonalException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public static void testSortiereAlter() //
|
||||
{
|
||||
try {
|
||||
System.out.println("+++++++++++++++++++++++ testSortiereAlter +++++++++++++++++++++++++\n");
|
||||
Personalbuero pb = new Personalbuero();
|
||||
System.out.println(pb); // keine MA
|
||||
System.out.println();
|
||||
|
||||
pb.sortiereAlter(); // nichts sollte passieren
|
||||
|
||||
System.out.println(pb); // keine MA
|
||||
System.out.println();
|
||||
|
||||
Angestellter a2 = new Angestellter("Alfred", 'm', Year.of(1963), Year.of(2007)); // 59
|
||||
System.out.println(a2);
|
||||
Freelancer f1 = new Freelancer("Eva", 'w', Year.of(1980), Year.of(2001), 100f, 15); // 42
|
||||
System.out.println(f1);
|
||||
Freelancer f2 = new Freelancer("Heinz", 'm', Year.of(2002), Year.of(2022), 10f, 125); // 20
|
||||
System.out.println(f2);
|
||||
Freelancer f3 = new Freelancer("Anna", 'w', Year.of(1990), Year.of(2007), 100f, 30); // 32
|
||||
System.out.println(f3);
|
||||
Freelancer f4 = new Freelancer("Walter", 'm', Year.of(1980), Year.of(2002), 25f, 100); // 42
|
||||
System.out.println(f4);
|
||||
System.out.println();
|
||||
|
||||
pb.aufnehmen(a2);
|
||||
pb.aufnehmen(f1);
|
||||
pb.aufnehmen(f2);
|
||||
pb.aufnehmen(f3);
|
||||
pb.aufnehmen(f4);
|
||||
System.out.println(pb); // a2 Alfred 59, f1 Eva 42, f2 Heinz 20 , f3 Anna 32 , f4 Walter 42
|
||||
System.out.println();
|
||||
|
||||
pb.sortiereAlter();
|
||||
|
||||
System.out.println(pb); // f2 Heinz 20, f3 Anna 32, f1 Eva 42, f4 Walter 42, a2 Alfred 59
|
||||
System.out.println();
|
||||
|
||||
} catch (PersonalException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public static void testSortiereDienstalter() //
|
||||
{
|
||||
try {
|
||||
System.out.println("+++++++++++++++++++++++ testSortiereDienstalter +++++++++++++++++++++++++\n");
|
||||
Personalbuero pb = new Personalbuero();
|
||||
System.out.println(pb); // keine MA
|
||||
System.out.println();
|
||||
|
||||
pb.sortiereDienstalter(); // nichts sollte passieren
|
||||
|
||||
System.out.println(pb); // keine MA
|
||||
System.out.println();
|
||||
|
||||
Angestellter a2 = new Angestellter("Alfred", 'm', Year.of(1963), Year.of(2007)); // 15
|
||||
System.out.println(a2);
|
||||
Freelancer f1 = new Freelancer("Eva", 'w', Year.of(1980), Year.of(2001), 100f, 15); // 21
|
||||
System.out.println(f1);
|
||||
Freelancer f2 = new Freelancer("Heinz", 'm', Year.of(2002), Year.of(2022), 10f, 125); // 0
|
||||
System.out.println(f2);
|
||||
Freelancer f3 = new Freelancer("Anna", 'w', Year.of(1990), Year.of(2007), 100f, 30); // 15
|
||||
System.out.println(f3);
|
||||
Freelancer f4 = new Freelancer("Walter", 'm', Year.of(1980), Year.of(2002), 25f, 100); // 20
|
||||
System.out.println(f4);
|
||||
System.out.println();
|
||||
|
||||
pb.aufnehmen(a2);
|
||||
pb.aufnehmen(f1);
|
||||
pb.aufnehmen(f2);
|
||||
pb.aufnehmen(f3);
|
||||
pb.aufnehmen(f4);
|
||||
System.out.println(pb); // a2 Alfred 15, f1 Eva 21, f2 Heinz 0 , f3 Anna 15 , f4 Walter 20
|
||||
System.out.println();
|
||||
|
||||
pb.sortiereDienstalter();
|
||||
|
||||
System.out.println(pb); // f2 Heinz 0, a2 Alfred 15, f3 Anna 15, f4 Walter 20, f1 Eva 21
|
||||
System.out.println();
|
||||
|
||||
} catch (PersonalException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
package test;
|
||||
|
||||
// 2022-03-25 4BAIF
|
||||
// 2022-03-21 umgestellt auf EH
|
||||
// 2022-03-22 mit testSaveMitarbeiter und testLoadMitarbeiter
|
||||
// 2022-03-25 mit testExportMitarbeiter();
|
||||
|
||||
import java.time.Year;
|
||||
|
||||
import model.Angestellter;
|
||||
import model.Freelancer;
|
||||
import model.PersonalException;
|
||||
import model.Personalbuero;
|
||||
|
||||
public class TestPersonalbueroMain {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
try {
|
||||
// System.out.println("------------- Testmethoden fuer TestAngestellter ---------------\n");
|
||||
// test.TestAngestellter.testAngestellter();
|
||||
// System.out.println();
|
||||
// System.out.println("-------------- Testmethoden fuer TestArzt ---------------\\n\"");
|
||||
// test.TestArzt.testArzt();
|
||||
// System.out.println();
|
||||
|
||||
// testSortiereMitarbeiter();
|
||||
// testSortiereName();
|
||||
// testSortiereAlter();
|
||||
// testSortiereDienstalter();
|
||||
|
||||
// testKuendigeName();
|
||||
// testKuendigeGehalt();
|
||||
|
||||
testSaveMitarbeiter();
|
||||
testLoadMitarbeiter();
|
||||
|
||||
testExportMitarbeiter();
|
||||
|
||||
} catch (Exception e) {
|
||||
System.out.println("TestPersonalbueroMain: ein unerwarteter Ausnahme-Fehler ist aufgetreten");
|
||||
System.out.println("Erhaltene Fehlermeldung und StackTrace:");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private static void testExportMitarbeiter() {
|
||||
|
||||
System.out.println("+++++++++++++++++++++++ testExportMitarbeiter +++++++++++++++++++++++++\n");
|
||||
|
||||
try {
|
||||
Personalbuero pb = new Personalbuero();
|
||||
|
||||
Angestellter a1 = new Angestellter("Alfred", 'm', Year.of(1977), Year.now());
|
||||
pb.aufnehmen(a1);
|
||||
Freelancer f2 = new Freelancer("Anna", 'w', Year.of(1976), Year.of(2002), 100f, 10); // 1000
|
||||
pb.aufnehmen(f2);
|
||||
|
||||
System.out.println(pb); // Alfred / Anna
|
||||
System.out.println();
|
||||
|
||||
pb.exportMitarbeiter();
|
||||
System.out.println("Die Mitarbeiter wurden exportiert");
|
||||
|
||||
} catch (PersonalException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void testSaveMitarbeiter() {
|
||||
System.out.println("+++++++++++++++++++++++ testSaveMitarbeiter +++++++++++++++++++++++++\n");
|
||||
|
||||
Personalbuero pb = new Personalbuero();
|
||||
System.out.println(pb);
|
||||
System.out.println();
|
||||
|
||||
try {
|
||||
pb.saveMitarbeiter();
|
||||
System.out.println("saveMitarbeiter() wurde ausgefuehrt");
|
||||
} catch (PersonalException e) {
|
||||
System.out.println(e.getMessage());
|
||||
// e.printStackTrace();
|
||||
}
|
||||
System.out.println();
|
||||
|
||||
try {
|
||||
Angestellter a1 = new Angestellter("Alfred", 'm', Year.of(1977), Year.now());
|
||||
pb.aufnehmen(a1);
|
||||
Freelancer f2 = new Freelancer("Anna", 'w', Year.of(1976), Year.of(2002), 100f, 10); // 1000
|
||||
pb.aufnehmen(f2);
|
||||
|
||||
System.out.println(pb); // 2 MA: Angestellter Alfred, Freelancerin Anna
|
||||
System.out.println();
|
||||
|
||||
pb.saveMitarbeiter();
|
||||
System.out.println("saveMitarbeiter() wurde ausgefuehrt");
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb); // 2 MA: Angestellter Alfred,, Freelancerin Anna
|
||||
System.out.println();
|
||||
|
||||
} catch (PersonalException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void testLoadMitarbeiter() {
|
||||
System.out.println("+++++++++++++++++++++++ testLoadMitarbeiter +++++++++++++++++++++++++\n");
|
||||
|
||||
try {
|
||||
Personalbuero pb = new Personalbuero();
|
||||
|
||||
Freelancer f2 = new Freelancer("Adele", 'w', Year.of(1976), Year.of(2002), 100f, 10); // 1000
|
||||
pb.aufnehmen(f2);
|
||||
System.out.println(pb); // // Adele
|
||||
System.out.println();
|
||||
|
||||
pb.loadMitarbeiter();
|
||||
System.out.println("loadMitarbeiter() wurde ausgefuehrt");
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb); // 2 MA: Angestellter Alfred, Freelancerin Anna
|
||||
System.out.println();
|
||||
|
||||
} catch (PersonalException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public static void testKuendigeGehalt() {
|
||||
try {
|
||||
System.out.println("+++++++++++++++++++++++ testKuendigeGehalt +++++++++++++++++++++++++\n");
|
||||
|
||||
Personalbuero pb = new Personalbuero();
|
||||
System.out.println(pb);
|
||||
System.out.println();
|
||||
|
||||
try {
|
||||
System.out.println(pb.kuendigen(-1f));
|
||||
System.out.println();
|
||||
|
||||
} catch (PersonalException e) {
|
||||
System.out.println(e.getMessage()); // Fehlermeldung
|
||||
}
|
||||
|
||||
// ein Mitarbeiter
|
||||
Angestellter a1 = new Angestellter("Alfred", 'm', Year.of(1977), Year.now()); // 1500
|
||||
pb.aufnehmen(a1);
|
||||
System.out.println(pb); // 1 MA: Angestellter Alfred
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb.kuendigen(1500f)); // 0.0
|
||||
System.out.println();
|
||||
|
||||
// zwei Mitarbeiter
|
||||
Freelancer f2 = new Freelancer("Anna", 'w', Year.of(1976), Year.of(2002), 100f, 10); // 1000
|
||||
pb.aufnehmen(f2);
|
||||
System.out.println(pb); // 2 MA: Angestellter Alfred, Freelancer Anna
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb.kuendigen(1500f)); // 0.0
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb); // 2 MA: Angestellter Alfred, Freelancer Anna
|
||||
System.out.println();
|
||||
|
||||
// drei Mitarbeiter
|
||||
Freelancer f3 = new Freelancer("Adi", 'w', Year.of(1996), Year.of(2022), 100f, 20); // 2000
|
||||
pb.aufnehmen(f3);
|
||||
System.out.println(pb); // 3 MA: Angestellter Alfred, Freelancer Anna, Freelancer Adi
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb.kuendigen(1999.9f)); // 2000.0
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb); // 2 MA: Angestellter Alfred, Freelancer Anna
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb.kuendigen(999.9f)); // 2500.0
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb); // keine MA
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb.kuendigen(-1f)); // Fehler negatives Gehalt
|
||||
|
||||
} catch (PersonalException e) {
|
||||
System.out.println("Fehler in testKuendigenGehalt(): " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public static void testKuendigeName() {
|
||||
try {
|
||||
System.out.println("+++++++++++++++++++++++ testkuendigeName +++++++++++++++++++++++++\n");
|
||||
|
||||
Personalbuero pb = new Personalbuero();
|
||||
System.out.println(pb); // keine MA
|
||||
System.out.println();
|
||||
|
||||
try {
|
||||
System.out.println(pb.kuendigen("")); // Fehler keine MA -1
|
||||
System.out.println();
|
||||
|
||||
} catch (PersonalException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
|
||||
Angestellter a1 = new Angestellter("Elisa", 'w', Year.of(2000), Year.of(2020)); // Elisa 1600
|
||||
Freelancer f1 = new Freelancer("Alfred", 'm', Year.of(1980), Year.now(), 100f, 10); // Alfred 1000
|
||||
|
||||
System.out.println(pb.aufnehmen(a1)); // true Elisa
|
||||
System.out.println(pb.aufnehmen(f1)); // true Alfred
|
||||
System.out.println(pb); // zwei "Mitarbeiter": Elisa, Alfred
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb.kuendigen("Anna")); // 0
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb); // zwei "Mitarbeiter": Elisa, Alfred
|
||||
System.out.println();
|
||||
|
||||
Freelancer f2 = new Freelancer(100f, 10); // Berta 1000
|
||||
f2.setName("Berta");
|
||||
|
||||
System.out.println(pb.aufnehmen(f2)); // true Berta
|
||||
System.out.println(pb); // drei "Mitarbeiter": Elisa, Alfred, Berta
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb.kuendigen("Alfred")); // 1
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb); // zwei "Mitarbeiter": Elisa, Berta
|
||||
System.out.println();
|
||||
|
||||
Angestellter a2 = new Angestellter("Berta", 'w', Year.of(1971), Year.now());
|
||||
System.out.println(pb.aufnehmen(a2)); // true Berta
|
||||
|
||||
System.out.println(pb); // drei "Mitarbeiter": Elisa, Berta, Berta
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb.kuendigen("Berta")); // 2
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb); // ein "Mitarbeiter": Elisa
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb.kuendigen("Elisa")); // 1
|
||||
System.out.println();
|
||||
|
||||
System.out.println(pb); // keine MA
|
||||
System.out.println();
|
||||
|
||||
} catch (PersonalException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public static void testSortiereMitarbeiter() {
|
||||
try {
|
||||
System.out.println("+++++++++++++++++++++++ testSortiereMitarbeiter +++++++++++++++++++++++++\n");
|
||||
Personalbuero pb = new Personalbuero();
|
||||
System.out.println(pb); // keine MA
|
||||
System.out.println();
|
||||
|
||||
pb.sortiereMitarbeiter(); // nichts sollte passieren
|
||||
|
||||
System.out.println(pb); // keine MA
|
||||
System.out.println();
|
||||
|
||||
Angestellter a2 = new Angestellter("Alfred", 'm', Year.of(1963), Year.of(2007));
|
||||
System.out.println(a2);
|
||||
Freelancer f1 = new Freelancer("Eva", 'w', Year.of(1980), Year.of(2001), 100f, 15);
|
||||
System.out.println(f1);
|
||||
Freelancer f2 = new Freelancer("Heinz", 'm', Year.of(2002), Year.of(2022), 10f, 125);
|
||||
System.out.println(f2);
|
||||
Freelancer f3 = new Freelancer("Anna", 'w', Year.of(1990), Year.of(2007), 100f, 30);
|
||||
System.out.println(f3);
|
||||
Freelancer f4 = new Freelancer("Walter", 'm', Year.of(1980), Year.of(2002), 25f, 100);
|
||||
System.out.println(f4);
|
||||
System.out.println();
|
||||
|
||||
pb.aufnehmen(a2);
|
||||
pb.aufnehmen(f1);
|
||||
pb.aufnehmen(f2);
|
||||
pb.aufnehmen(f3);
|
||||
pb.aufnehmen(f4);
|
||||
System.out.println(pb); // a2 2250, f1 1500, f2 1250 , f3 3000, f4 2500
|
||||
System.out.println();
|
||||
|
||||
pb.sortiereMitarbeiter();
|
||||
|
||||
System.out.println(pb); // f2 1250, f1 1500, a2 2250, f4 2500, f3 3000
|
||||
System.out.println();
|
||||
|
||||
} catch (PersonalException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public static void testSortiereName() {
|
||||
try {
|
||||
System.out.println("+++++++++++++++++++++++ testSortiereName +++++++++++++++++++++++++\n");
|
||||
Personalbuero pb = new Personalbuero();
|
||||
System.out.println(pb); // keine MA
|
||||
System.out.println();
|
||||
|
||||
pb.sortiereNamen(); // nichts sollte passieren
|
||||
|
||||
System.out.println(pb); // keine MA
|
||||
System.out.println();
|
||||
|
||||
Angestellter a2 = new Angestellter("Alfred", 'm', Year.of(1963), Year.of(2007));
|
||||
System.out.println(a2);
|
||||
Freelancer f1 = new Freelancer("Eva", 'w', Year.of(1980), Year.of(2001), 100f, 15);
|
||||
System.out.println(f1);
|
||||
Freelancer f2 = new Freelancer("Heinz", 'm', Year.of(2002), Year.of(2022), 10f, 125);
|
||||
System.out.println(f2);
|
||||
Freelancer f3 = new Freelancer("Anna", 'w', Year.of(1990), Year.of(2007), 100f, 30);
|
||||
System.out.println(f3);
|
||||
Freelancer f4 = new Freelancer("Walter", 'm', Year.of(1980), Year.of(2002), 25f, 100);
|
||||
System.out.println(f4);
|
||||
System.out.println();
|
||||
|
||||
pb.aufnehmen(a2);
|
||||
pb.aufnehmen(f1);
|
||||
pb.aufnehmen(f2);
|
||||
pb.aufnehmen(f3);
|
||||
pb.aufnehmen(f4);
|
||||
System.out.println(pb); // a2 Alfred, f1 Eva, f2 Heinz , f3 Anna, f4 Walter
|
||||
System.out.println();
|
||||
|
||||
pb.sortiereNamen();
|
||||
|
||||
System.out.println(pb); // a2 Alfred, f3 Anna, f1 Eva, f2 Heinz, f4 Walter
|
||||
System.out.println();
|
||||
|
||||
} catch (PersonalException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public static void testSortiereAlter() //
|
||||
{
|
||||
try {
|
||||
System.out.println("+++++++++++++++++++++++ testSortiereAlter +++++++++++++++++++++++++\n");
|
||||
Personalbuero pb = new Personalbuero();
|
||||
System.out.println(pb); // keine MA
|
||||
System.out.println();
|
||||
|
||||
pb.sortiereAlter(); // nichts sollte passieren
|
||||
|
||||
System.out.println(pb); // keine MA
|
||||
System.out.println();
|
||||
|
||||
Angestellter a2 = new Angestellter("Alfred", 'm', Year.of(1963), Year.of(2007)); // 59
|
||||
System.out.println(a2);
|
||||
Freelancer f1 = new Freelancer("Eva", 'w', Year.of(1980), Year.of(2001), 100f, 15); // 42
|
||||
System.out.println(f1);
|
||||
Freelancer f2 = new Freelancer("Heinz", 'm', Year.of(2002), Year.of(2022), 10f, 125); // 20
|
||||
System.out.println(f2);
|
||||
Freelancer f3 = new Freelancer("Anna", 'w', Year.of(1990), Year.of(2007), 100f, 30); // 32
|
||||
System.out.println(f3);
|
||||
Freelancer f4 = new Freelancer("Walter", 'm', Year.of(1980), Year.of(2002), 25f, 100); // 42
|
||||
System.out.println(f4);
|
||||
System.out.println();
|
||||
|
||||
pb.aufnehmen(a2);
|
||||
pb.aufnehmen(f1);
|
||||
pb.aufnehmen(f2);
|
||||
pb.aufnehmen(f3);
|
||||
pb.aufnehmen(f4);
|
||||
System.out.println(pb); // a2 Alfred 59, f1 Eva 42, f2 Heinz 20 , f3 Anna 32 , f4 Walter 42
|
||||
System.out.println();
|
||||
|
||||
pb.sortiereAlter();
|
||||
|
||||
System.out.println(pb); // f2 Heinz 20, f3 Anna 32, f1 Eva 42, f4 Walter 42, a2 Alfred 59
|
||||
System.out.println();
|
||||
|
||||
} catch (PersonalException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public static void testSortiereDienstalter() //
|
||||
{
|
||||
try {
|
||||
System.out.println("+++++++++++++++++++++++ testSortiereDienstalter +++++++++++++++++++++++++\n");
|
||||
Personalbuero pb = new Personalbuero();
|
||||
System.out.println(pb); // keine MA
|
||||
System.out.println();
|
||||
|
||||
pb.sortiereDienstalter(); // nichts sollte passieren
|
||||
|
||||
System.out.println(pb); // keine MA
|
||||
System.out.println();
|
||||
|
||||
Angestellter a2 = new Angestellter("Alfred", 'm', Year.of(1963), Year.of(2007)); // 15
|
||||
System.out.println(a2);
|
||||
Freelancer f1 = new Freelancer("Eva", 'w', Year.of(1980), Year.of(2001), 100f, 15); // 21
|
||||
System.out.println(f1);
|
||||
Freelancer f2 = new Freelancer("Heinz", 'm', Year.of(2002), Year.of(2022), 10f, 125); // 0
|
||||
System.out.println(f2);
|
||||
Freelancer f3 = new Freelancer("Anna", 'w', Year.of(1990), Year.of(2007), 100f, 30); // 15
|
||||
System.out.println(f3);
|
||||
Freelancer f4 = new Freelancer("Walter", 'm', Year.of(1980), Year.of(2002), 25f, 100); // 20
|
||||
System.out.println(f4);
|
||||
System.out.println();
|
||||
|
||||
pb.aufnehmen(a2);
|
||||
pb.aufnehmen(f1);
|
||||
pb.aufnehmen(f2);
|
||||
pb.aufnehmen(f3);
|
||||
pb.aufnehmen(f4);
|
||||
System.out.println(pb); // a2 Alfred 15, f1 Eva 21, f2 Heinz 0 , f3 Anna 15 , f4 Walter 20
|
||||
System.out.println();
|
||||
|
||||
pb.sortiereDienstalter();
|
||||
|
||||
System.out.println(pb); // f2 Heinz 0, a2 Alfred 15, f3 Anna 15, f4 Walter 20, f1 Eva 21
|
||||
System.out.println();
|
||||
|
||||
} catch (PersonalException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user