1.4.22 CSV export/import

This commit is contained in:
unknown 2022-04-05 12:00:40 +02:00
parent da54018cad
commit 47ddd17223
8 changed files with 458 additions and 180 deletions

View File

@ -5,10 +5,13 @@ import java.time.Year;
* Klasse Angestellter * Klasse Angestellter
* *
* @author (WES) * @author (WES)
* @version (2022-03-18) * @version (2022-04-01)
* *
* umgestellt auf Exception-Handling * umgestellt auf Exception-Handling
* mit Angestellter(String[]);
*/ */
// mit auskommentierter toStringCsv()
public class Angestellter extends Mitarbeiter implements GehaltBerechenbar public class Angestellter extends Mitarbeiter implements GehaltBerechenbar
{ {
@ -24,6 +27,11 @@ public class Angestellter extends Mitarbeiter implements GehaltBerechenbar
super(name, gesch, gebJahr, eintrJahr); super(name, gesch, gebJahr, eintrJahr);
} }
public Angestellter(String[] zeilenTeile) throws PersonalException
{
super(zeilenTeile);
}
@Override // auf Deutsch "ueberschreiben" der Methode toString() aus der Superklasse Mitarbeiter @Override // auf Deutsch "ueberschreiben" der Methode toString() aus der Superklasse Mitarbeiter
public String toString() public String toString()
{ {
@ -36,5 +44,13 @@ public class Angestellter extends Mitarbeiter implements GehaltBerechenbar
{ {
return 1500f + 50f*berechneDienstalter(); return 1500f + 50f*berechneDienstalter();
} }
// -------------------------- toString ------------------------
// public String toStringCsv()
// {
// return super.toStringCsv();
// // es gibt keine weiteren Attribute
// }
} }

View File

@ -5,9 +5,11 @@ import java.time.Year;
* Klasse Arzt * Klasse Arzt
* *
* @author (WES) * @author (WES)
* @version (2022-03-18) * @version (2022-03-31)
* *
* umgestellt auf Exception-Handling * umgestellt auf Exception-Handling
* mit freiwilliger Uebung toStringCsv()
* mit freiwilliger Uebung public Arzt (String[] zeilenTeile)
*/ */
public class Arzt extends Mitarbeiter implements GehaltBerechenbar public class Arzt extends Mitarbeiter implements GehaltBerechenbar
{ {
@ -15,6 +17,9 @@ public class Arzt extends Mitarbeiter implements GehaltBerechenbar
private int wochenStunden; private int wochenStunden;
private float fixum; private float fixum;
// FUE
// public Arzt (String[] zeilenTeile) // TODO
public Arzt(String name, char gesch, Year gebJahr, Year eintrJahr, int wochenStunden, float fixum) throws PersonalException public Arzt(String name, char gesch, Year gebJahr, Year eintrJahr, int wochenStunden, float fixum) throws PersonalException
{ {
super(name, gesch, gebJahr, eintrJahr); super(name, gesch, gebJahr, eintrJahr);
@ -56,6 +61,8 @@ public class Arzt extends Mitarbeiter implements GehaltBerechenbar
return fixum; return fixum;
} }
// -------------------------- print / toString / toStringCsv ------------
// public void printInfo() // zum Testen // public void printInfo() // zum Testen
// { // {
// System.out.println(this); // System.out.println(this);
@ -69,4 +76,12 @@ public class Arzt extends Mitarbeiter implements GehaltBerechenbar
", Fixum: " + fixum; ", Fixum: " + fixum;
} }
public String toStringCsv()
{
String sep = ";";
// Arzt;Wolfgang;m;1964;2022 ; 40 ; 1200.0
return super.toStringCsv() +sep+wochenStunden+sep+fixum;
}
} }

View File

@ -1,8 +1,9 @@
package model; package model;
// 2022-03-22 4BAIF // 2022-04-01 4BAIF
// umgestellt auf Exception-Handling // umgestellt auf Exception-Handling
// mit serialVersionUID fuer Serialisierung // mit serialVersionUID fuer Serialisierung
// mit toStringCsv()
import java.time.Year; import java.time.Year;
public class Freelancer extends Mitarbeiter implements PraemieBerechenbar, GehaltBerechenbar public class Freelancer extends Mitarbeiter implements PraemieBerechenbar, GehaltBerechenbar
@ -28,6 +29,30 @@ public class Freelancer extends Mitarbeiter implements PraemieBerechenbar, Gehal
setStundenSatz(stundenSatz); setStundenSatz(stundenSatz);
setStunden(stunden); 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 int getStunden() public int getStunden()
{ {
@ -99,6 +124,15 @@ public class Freelancer extends Mitarbeiter implements PraemieBerechenbar, Gehal
return "Fuer 15 Jahre Mitarbeit bei einem Personalbuero erhaelt der Freelancer ein \"Gehalt\", fuer 20 Jahre zwei \"Gehaelter\"\" als Praemie."; return "Fuer 15 Jahre Mitarbeit bei einem Personalbuero erhaelt der Freelancer ein \"Gehalt\", fuer 20 Jahre zwei \"Gehaelter\"\" als Praemie.";
} }
// ---------------------------- toString / print ----------------------------
public String toStringCsv()
{
char sep = ';';
return super.toStringCsv()+sep+stunden+sep+stundenSatz;
}
public String toString() public String toString()
{ {
return new StringBuffer().append("Freelancer "). return new StringBuffer().append("Freelancer ").

View File

@ -1,167 +1,230 @@
package model; package model;
import java.io.Serializable; import java.io.Serializable;
// 2022-03-21 4BAIF
// Klasse abstract
// Methode berechneGehalt() abstract
// 2022-01-26: Debugging toString() - mit ?-Operator gefixt
// Interface Comparable
// Umstellung auf EH
import java.time.Year; import java.time.Year;
import java.util.Comparator; import java.util.Comparator;
public abstract class Mitarbeiter implements Comparable<Mitarbeiter>, Serializable //2022-03-31 4BAIF
//Klasse abstract
//Methode berechneGehalt() abstract
//2022-01-26: Debugging toString() - mit ?-Operator gefixt
//Interface Comparable
//Umstellung auf EH
// neuer Konstruktor fuer importMitarbeiter
// Entwicklungsstand
public abstract class Mitarbeiter implements Comparable <Mitarbeiter>, Serializable
//public class Mitarbeiter implements Comparable <Mitarbeiter> // zum Testen //public class Mitarbeiter implements Comparable <Mitarbeiter> // zum Testen
{ {
private static final long serialVersionUID = 2022_03_22__13_15L; private static final long serialVersionUID = 2022_03_22__13_15L;
private String name; private String name;
private Year gebJahr, eintrJahr; private Year gebJahr, eintrJahr;
private char gesch; private char gesch;
public Mitarbeiter() throws PersonalException // zum Testen public Mitarbeiter() throws PersonalException // zum Testen
{ {
setName("Anna"); setName("Anna");
setGesch('w'); setGesch('w');
setGebJahr(Year.of(2001)); setGebJahr(Year.of(2001));
setEintrJahr(Year.now()); setEintrJahr(Year.now());
} }
public Mitarbeiter(String name, char gesch, Year gebJahr, Year eintrJahr) throws PersonalException { public Mitarbeiter(String name, char gesch, Year gebJahr, Year eintrJahr) throws PersonalException
setName(name); {
setGesch(gesch); setName(name);
setGebJahr(gebJahr); setGesch(gesch);
setEintrJahr(eintrJahr); 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");
}
// ------------------------------------ getter ------------------------ //------------------------------------ getter ------------------------
public String getName() { public String getName()
return name; {
} return name;
}
public char getGesch() { public char getGesch()
return gesch; {
} return gesch;
}
public Year getGebJahr() { public Year getGebJahr()
return gebJahr; {
} return gebJahr;
}
public Year getEintrJahr() { public Year getEintrJahr()
return eintrJahr; {
} 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) !!!");
}
// ------------------------------------ setter ------------------------ public void setGesch(char gesch) throws PersonalException
public void setName(String name) throws PersonalException { {
if (name != null) if (gesch == 'm' || gesch == 'M' || gesch == 'w' || gesch == 'W' || gesch == 'x' || gesch == 'X' )
if (name.length() >= 2) this.gesch = Character.toLowerCase(gesch); // Character ist "Wrapper"-Klasse von char
this.name = name; else
else throw new PersonalException("Falscher Parameterwert fuer setGesch(" + gesch + ") !!!");
throw new PersonalException("Falscher Parameterwert fuer setName(" + name + ") !!!"); }
else
throw new PersonalException("null-Referenz fuer setName(String name) !!!");
}
public void setGesch(char gesch) throws PersonalException { public void setGebJahr(Year gebJahr) 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 //int aktJahr = Year.now().getValue();
else Year aktYear = Year.now();
throw new PersonalException("Falscher Parameterwert fuer setGesch(" + gesch + ") !!!"); 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 setGebJahr(Year gebJahr) throws PersonalException { public void setEintrJahr(Year eintrJahr) throws PersonalException
// int aktJahr = Year.now().getValue(); {
Year aktYear = Year.now(); if (eintrJahr != null)
if (gebJahr != null) if (gebJahr != null)
// if (gebJahr.getValue() >= aktJahr-100 && gebJahr.getValue() <= aktJahr ) {
if (!gebJahr.isBefore(aktYear.minusYears(100)) && !gebJahr.isAfter(aktYear)) int aktJahr = Year.now().getValue();
this.gebJahr = gebJahr; if (eintrJahr.getValue() >= gebJahr.getValue()+15)
else if (eintrJahr.getValue() <= aktJahr )
throw new PersonalException("Falscher Parameterwert fuer setGebJahr(" + gebJahr + ") !!!"); this.eintrJahr = eintrJahr;
else else
throw new PersonalException("null-Referenz fuer setGebJahr(Year gebJahr) !!!"); 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) !!!");
}
// Entwicklungsstand TODO
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());
}
}
//-------------------------------------- weitere -----------------------
public int berechneAlter()
{
// return 2021 - gebJahr; // ganz schlecht...
public void setEintrJahr(Year eintrJahr) throws PersonalException { // Bessere Loesung in Einzelschritten:
if (eintrJahr != null) // Year datum = Year.now();
if (gebJahr != null) { // int aktJahr = datum.getValue();
int aktJahr = Year.now().getValue(); // int alter = aktJahr - gebJahr;
if (eintrJahr.getValue() >= gebJahr.getValue() + 15) // return alter;
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) !!!");
}
// -------------------------------------- weitere ----------------------- // Bessere Loesung in einem Schritt:
public int berechneAlter() { return (gebJahr != null?Year.now().getValue() - gebJahr.getValue():-99); // Fehlercode
// return 2021 - gebJahr; // ganz schlecht... }
// Bessere Loesung in Einzelschritten: public int berechneDienstalter()
// Year datum = Year.now(); {
// int aktJahr = datum.getValue(); return (eintrJahr != null?Year.now().getValue() - eintrJahr.getValue():-99); // Fehlercode
// int alter = aktJahr - gebJahr; }
// return alter;
// Bessere Loesung in einem Schritt: // public float berechneGehalt()
return (gebJahr != null ? Year.now().getValue() - gebJahr.getValue() : -99); // Fehlercode // {
} // return 1500f + 50f*berechneDienstalter();
// }
public int berechneDienstalter() {
return (eintrJahr != null ? Year.now().getValue() - eintrJahr.getValue() : -99); // Fehlercode
}
// public float berechneGehalt()
// {
// return 1500f + 50f*berechneDienstalter();
// }
// public float berechneGehalt() // zum UMSTELLEN und TESTEN // public float berechneGehalt() // zum UMSTELLEN und TESTEN
// { // {
// return 0f; // return 0f;
// } // }
public abstract float berechneGehalt(); // alle Subklassen public abstract float berechneGehalt(); // alle Subklassen
// MUESSEN diese Methode implementieren // MUESSEN diese Methode implementieren
// Ausnahme: diese Subklasse ist auch abstrakt // Ausnahme: diese Subklasse ist auch abstrakt
// public abstract int berechneUrlaubsanspruch() // Beispiel fuer einen // public abstract int berechneUrlaubsanspruch() // Beispiel fuer einen
// Anwendungsfall einer abstrakten Methode // Anwendungsfall einer abstrakten Methode
// ; // ;
// --------------------------------- compareTo ----------------------------- // --------------------------------- compareTo -----------------------------
@Override @Override
public int compareTo(Mitarbeiter o) { // "natuerliche" Reihenfolge von Gehalt public int compareTo(Mitarbeiter o) { // "natuerliche" Reihenfolge von Gehalt
if (o != null) { if (o != null)
{
if (berechneGehalt() > o.berechneGehalt()) if (berechneGehalt() > o.berechneGehalt())
return 1; return 1;
else if (berechneGehalt() < o.berechneGehalt())
return -1;
else else
return 0; if (berechneGehalt() < o.berechneGehalt())
} else // Annahme bis zum ExceptionHandling, dann NullPointerException return -1;
else
return 0;
}
else // Annahme bis zum ExceptionHandling, dann NullPointerException
return 1; return 1;
} }
// ----------------------------------- innere Klasse // ----------------------------------- innere Klasse --------------------------------
// --------------------------------
public static class AlterComparator implements Comparator<Mitarbeiter> { public static class AlterComparator implements Comparator<Mitarbeiter> {
@Override @Override
public int compare(Mitarbeiter o1, Mitarbeiter o2) { public int compare(Mitarbeiter o1, Mitarbeiter o2) {
if (o1 != null && o2 != null) if (o1 != null && o2 != null)
if (o1.berechneAlter() > o2.berechneAlter()) if (o1.berechneAlter() > o2.berechneAlter())
return 1; return 1;
@ -172,23 +235,53 @@ public abstract class Mitarbeiter implements Comparable<Mitarbeiter>, Serializab
else // o1 == null || o2 == null else // o1 == null || o2 == null
return 1; return 1;
} }
} }
// ------------------------------------ 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";
public void print() { }
System.out.println(this); // System.out.println(toString()) return "Name: " + name+
} ", Gesch.: " + geschlecht+
", Geb.Jahr: " + (gebJahr != null?gebJahr.getValue():"keines vorhanden")+
public String toStringCsv() { ", Alter: " + berechneAlter()+
char sep = ';'; // Delimiter ", Eintr.Jahr: " + (eintrJahr != null?eintrJahr.getValue():"keines vorhanden")+
", Dienstalter: "+ berechneDienstalter() +
StringBuilder sb = new StringBuilder(); ", Gehalt: " + berechneGehalt();
}
sb.append(getClass().getSimpleName()).append(sep);
sb.append(name).append(sep); public void print()
sb.append(gesch).append(sep); {
sb.append(gebJahr).append(sep); System.out.println(this); //System.out.println(toString())
sb.append(eintrJahr).append(sep); }
return sb.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());
}
} }

View File

@ -1,15 +1,21 @@
package model; package model;
import java.io.BufferedReader;
import java.io.BufferedWriter; import java.io.BufferedWriter;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter; import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.io.ObjectInputStream; import java.io.ObjectInputStream;
import java.io.ObjectOutputStream; import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
// 2022-03-25 4BAIF // 2022-04-01 4BAIF
// Umgestellt auf ArrayList // Umgestellt auf ArrayList
// mit public float berechneDurchnittsalter() // mit public float berechneDurchnittsalter()
@ -43,10 +49,9 @@ import java.io.ObjectOutputStream;
// Textfile Speichern: // Textfile Speichern:
// exportMitarbeiter // exportMitarbeiter
import java.util.ArrayList; // 2022-03-29 exportMitarbeiterCsv
import java.util.Collections;
import java.util.Iterator; // 2022-04-01 importMitarbeiterCsc Vorbereitung
import java.util.List;
public class Personalbuero { public class Personalbuero {
private ArrayList<Mitarbeiter> mitarbeiter; // eine ArrayList ist "getypt" private ArrayList<Mitarbeiter> mitarbeiter; // eine ArrayList ist "getypt"
@ -400,12 +405,47 @@ public class Personalbuero {
try (BufferedWriter bw = new BufferedWriter(new FileWriter(strPfadName))) { try (BufferedWriter bw = new BufferedWriter(new FileWriter(strPfadName))) {
StringBuilder sb = new StringBuilder(100000); StringBuilder sb = new StringBuilder(100000);
for (Mitarbeiter mit : mitarbeiter) { for (Mitarbeiter mit : mitarbeiter)
sb.append(mit.toStringCsv()).append(nLn); sb.append(mit.toStringCsv()).append(nLn); // .append("\n");
}
bw.write(sb.toString()); bw.write(sb.toString());
} catch (IOException e) { } catch (IOException e) {
throw new PersonalException("Eingabe/Ausgabe-Fehler bei exportMitarbeiter()" + e.getMessage()); throw new PersonalException("Eingabe/Ausgabe-Fehler bei exportMitarbeiterCsv()" + e.getMessage());
}
}
public void importMitarbeiterCsv() throws PersonalException // TODO
{
String fSep = System.getProperty("file.separator");
String strPfadName = "c:" + fSep + "scratch" + fSep + "mitarbeiter.csv";
try (BufferedReader br = new BufferedReader(new FileReader(strPfadName))) {
String zeile;
String[] zeilenTeile;
String sep = ";"; // erwartetes Trennzeichen in der csv-Datei
// Muster: "Vorauslesen"
zeile = br.readLine(); // wenn keine Zeile gefunden, dann return null
while (zeile != null) {
zeilenTeile = zeile.trim().split(sep);
// Welcher Konstruktor wird aufgerufen?
// Wie ermitteln wir den Mitarbeiter-Typ?
if (zeile.contains("Angestellter")) {
aufnehmen(new Angestellter(zeilenTeile));
} else
; // if ((zeile.contains("Freelancer"))
// else
// if ((zeile.contains("Arzt"))
// else unbekannter Mitarbeiter-Typ
zeile = br.readLine();
}
} catch (FileNotFoundException e) {
throw new PersonalException("Datei-Fehler bei importMitarbeiterCsv(): " + e.getMessage());
} catch (IOException e) {
throw new PersonalException("Eingabe/Ausgabe-Fehler bei importMitarbeiterCsv(): " + e.getMessage());
} }
} }

43
src/test/TestExport.java Normal file
View File

@ -0,0 +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());
}
}
}

64
src/test/TestImport.java Normal file
View File

@ -0,0 +1,64 @@
package test;
import java.time.Year;
import model.Angestellter;
import model.Freelancer;
import model.PersonalException;
import model.Personalbuero;
// 2022-04-01
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 Freelancer
// 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();
// System.out.println("TODO: Personalbuero.importMitarbeiterCsv() ist noch zu implementieren!!!"); // TODO
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
}
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
}
catch (PersonalException e)
{
System.out.println("!!! Fehler bei TestImport !!!" +nLn+ e.getMessage());
}
}
}

View File

@ -36,8 +36,6 @@ public class TestPersonalbueroMain {
testLoadMitarbeiter(); testLoadMitarbeiter();
testExportMitarbeiter(); testExportMitarbeiter();
testExport();
} catch (Exception e) { } catch (Exception e) {
System.out.println("TestPersonalbueroMain: ein unerwarteter Ausnahme-Fehler ist aufgetreten"); System.out.println("TestPersonalbueroMain: ein unerwarteter Ausnahme-Fehler ist aufgetreten");
@ -46,31 +44,6 @@ public class TestPersonalbueroMain {
} }
} }
private static void testExport() {
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);
System.out.println(pb); // Alfred, Anna
System.out.println();
pb.exportMitarbeiterCsv();
System.out.println("exportMitarbeiterCsv() wurde ausgefuehrt");
}
catch (PersonalException e)
{
System.out.println("!!! Fehler bei TestExport !!!" +nLn+ e.getMessage());
}
}
private static void testExportMitarbeiter() { private static void testExportMitarbeiter() {
System.out.println("+++++++++++++++++++++++ testExportMitarbeiter +++++++++++++++++++++++++\n"); System.out.println("+++++++++++++++++++++++ testExportMitarbeiter +++++++++++++++++++++++++\n");