doppeltes aufnehmen verhindert, equals, hashcode (Old and new)
This commit is contained in:
		@@ -5,20 +5,29 @@ import java.time.Year;
 | 
			
		||||
 * Klasse Arzt 
 | 
			
		||||
 *
 | 
			
		||||
 * @author (WES)
 | 
			
		||||
 * @version (2022-03-31)
 | 
			
		||||
 * @version (2022-04-05)
 | 
			
		||||
 * 
 | 
			
		||||
 * umgestellt auf Exception-Handling
 | 
			
		||||
 * mit freiwilliger Uebung toStringCsv()
 | 
			
		||||
 * mit freiwilliger Uebung public Arzt (String[] zeilenTeile)
 | 
			
		||||
 * mit public Arzt(String[] zeilenTeile)
 | 
			
		||||
 * mit setAllFields(String[] zeilenTeile)
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
public class Arzt extends Mitarbeiter implements GehaltBerechenbar
 | 
			
		||||
{
 | 
			
		||||
	private static final long serialVersionUID = 2022_03_22__13_15L;
 | 
			
		||||
	private static final long serialVersionUID = 2022_04_05__12_40L;
 | 
			
		||||
    private int wochenStunden;
 | 
			
		||||
    private float fixum;
 | 
			
		||||
 | 
			
		||||
    // FUE
 | 
			
		||||
    // public Arzt (String[] zeilenTeile) // TODO
 | 
			
		||||
    // FUE 2002-04-01
 | 
			
		||||
    // public Arzt (String[] zeilenTeile)
 | 
			
		||||
    
 | 
			
		||||
    public Arzt (String[] zeilenTeile) throws PersonalException
 | 
			
		||||
    {
 | 
			
		||||
    	super(zeilenTeile);
 | 
			
		||||
    	setAllFields(zeilenTeile);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    public Arzt(String name, char gesch, Year gebJahr, Year eintrJahr, int wochenStunden, float fixum) throws PersonalException
 | 
			
		||||
    {
 | 
			
		||||
@@ -43,6 +52,27 @@ public class Arzt extends Mitarbeiter implements GehaltBerechenbar
 | 
			
		||||
        	throw new PersonalException("Fehler bei setFixum(): Wert von fixum muss groesser 0.0 sein (" + fixum + ")");
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    private void setAllFields(String[] zeilenTeile) throws PersonalException
 | 
			
		||||
    {
 | 
			
		||||
    	try {
 | 
			
		||||
	    	// 10;   1000.0
 | 
			
		||||
	    	// [5]    [6]        im Array zeilenTeile
 | 
			
		||||
	    	setWochenStunden(Integer.parseInt(zeilenTeile[5].trim()));  // "10"
 | 
			
		||||
	    	// throws NumberFormatException bei Integer.parseInt
 | 
			
		||||
	    	setFixum(Float.parseFloat(zeilenTeile[6].trim()));	// "1000.0"
 | 
			
		||||
    	} 
 | 
			
		||||
    	catch(ArrayIndexOutOfBoundsException e)
 | 
			
		||||
    	{
 | 
			
		||||
    		throw new PersonalException("Array-Fehler bei setAllFields(): " 
 | 
			
		||||
    									+ e.getMessage());
 | 
			
		||||
    	} 
 | 
			
		||||
    	catch(NumberFormatException e)
 | 
			
		||||
    	{
 | 
			
		||||
    		throw new PersonalException("Zahlenumwandlungs-Fehler (wochenStunden oder fixum) bei setAllFields(): " 
 | 
			
		||||
					+ e.getMessage());    		
 | 
			
		||||
    	}    	
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public float berechneStundensatz() throws PersonalException
 | 
			
		||||
    {
 | 
			
		||||
        if (wochenStunden > 0)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,27 +1,27 @@
 | 
			
		||||
package model;
 | 
			
		||||
 | 
			
		||||
// 2022-04-01 4BAIF
 | 
			
		||||
import java.time.Year;
 | 
			
		||||
 | 
			
		||||
// 2022-04-05 4BAIF
 | 
			
		||||
// umgestellt auf Exception-Handling
 | 
			
		||||
// mit serialVersionUID fuer Serialisierung
 | 
			
		||||
// mit toStringCsv()
 | 
			
		||||
// mit Freelancer (String[] zeilenTeile)
 | 
			
		||||
 | 
			
		||||
import java.time.Year;
 | 
			
		||||
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 Year eintrJahr; // SO NICHT!!!
 | 
			
		||||
 | 
			
		||||
    public Freelancer(float stundenSatz, int stunden) throws PersonalException
 | 
			
		||||
    {
 | 
			
		||||
	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
 | 
			
		||||
    {
 | 
			
		||||
	public Freelancer(String name, char gesch, Year gebJahr, Year eintrJahr, float stundenSatz, int stunden)
 | 
			
		||||
			throws PersonalException {
 | 
			
		||||
		// setName(name); // so nicht!
 | 
			
		||||
		// setGesch(gesch); // so nicht!
 | 
			
		||||
		// ....
 | 
			
		||||
@@ -30,54 +30,44 @@ public class Freelancer extends Mitarbeiter implements PraemieBerechenbar, Gehal
 | 
			
		||||
		setStunden(stunden);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    public Freelancer (String[] zeilenTeile) throws PersonalException
 | 
			
		||||
    {
 | 
			
		||||
	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());    		
 | 
			
		||||
		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() {
 | 
			
		||||
		return stunden;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    public float getStundenSatz()
 | 
			
		||||
    {
 | 
			
		||||
	public float getStundenSatz() {
 | 
			
		||||
		return stundenSatz;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    public void setStunden(int stunden) throws PersonalException
 | 
			
		||||
    {
 | 
			
		||||
	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
 | 
			
		||||
    {
 | 
			
		||||
	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 + ")");
 | 
			
		||||
			throw new PersonalException(
 | 
			
		||||
					"Fehler bei setStundenSatz(): stundenSatz ist 0.0 oder kleiner (" + stundenSatz + ")");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// so NICHT!!!
 | 
			
		||||
@@ -91,19 +81,21 @@ public class Freelancer extends Mitarbeiter implements PraemieBerechenbar, Gehal
 | 
			
		||||
	// if (eintrJahr.getValue() <= aktJahr )
 | 
			
		||||
	// this.eintrJahr = eintrJahr;
 | 
			
		||||
	// else
 | 
			
		||||
                        // System.out.println("Falscher Parameterwert fuer setEintrJahr("+eintrJahr+") !!!");
 | 
			
		||||
	// System.out.println("Falscher Parameterwert fuer setEintrJahr("+eintrJahr+")
 | 
			
		||||
	// !!!");
 | 
			
		||||
	// else
 | 
			
		||||
                    // System.out.println("Fehler bei setEintrJahr("+eintrJahr+") -> Person ist zu jung ("+berechneAlter()+")!!!");
 | 
			
		||||
	// 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 !!!");
 | 
			
		||||
	// 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 berechneGehalt() {
 | 
			
		||||
		return stundenSatz * stunden;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public float berechnePraemie() // FUE Refactoring mit Verwendung von switch-case
 | 
			
		||||
@@ -112,39 +104,60 @@ public class Freelancer extends Mitarbeiter implements PraemieBerechenbar, Gehal
 | 
			
		||||
 | 
			
		||||
		if (berechneDienstalter() == 15)
 | 
			
		||||
			praemie = berechneGehalt(); // 1x Gehalt als Praemie
 | 
			
		||||
        else
 | 
			
		||||
            if (berechneDienstalter()  == 20)
 | 
			
		||||
                praemie = berechneGehalt()*2; // 2x Gehalt als Praemie
 | 
			
		||||
		else if (berechneDienstalter() == 20)
 | 
			
		||||
			praemie = berechneGehalt() * 2; // 2x Gehalt als Praemie
 | 
			
		||||
 | 
			
		||||
		return praemie;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    public String infoBerechnungPraemie()
 | 
			
		||||
    {
 | 
			
		||||
	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)
 | 
			
		||||
			return true;
 | 
			
		||||
		if (!super.equals(obj))
 | 
			
		||||
			return false;
 | 
			
		||||
		if (getClass() != obj.getClass())
 | 
			
		||||
			return false;
 | 
			
		||||
		Freelancer other = (Freelancer) obj;
 | 
			
		||||
		if (stunden != other.stunden)
 | 
			
		||||
			return false;
 | 
			
		||||
		if (Float.floatToIntBits(stundenSatz) != Float.floatToIntBits(other.stundenSatz))
 | 
			
		||||
			return false;
 | 
			
		||||
		return true;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// ---------------------------- toString / print ----------------------------
 | 
			
		||||
 | 
			
		||||
    public String toStringCsv()
 | 
			
		||||
    {
 | 
			
		||||
	public String toStringCsv() {
 | 
			
		||||
		char sep = ';';
 | 
			
		||||
 | 
			
		||||
    	return super.toStringCsv()+sep+stunden+sep+stundenSatz;
 | 
			
		||||
		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 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()
 | 
			
		||||
    {
 | 
			
		||||
	public void print() {
 | 
			
		||||
		System.out.println(this);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	public int hashCode() {
 | 
			
		||||
		final int prime = 31;
 | 
			
		||||
		int result = super.hashCode();
 | 
			
		||||
		result = prime * result + stunden;
 | 
			
		||||
		result = prime * result + Float.floatToIntBits(stundenSatz);
 | 
			
		||||
		return result;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,13 @@
 | 
			
		||||
package model;
 | 
			
		||||
 | 
			
		||||
import java.io.Serializable;
 | 
			
		||||
import java.time.DateTimeException;
 | 
			
		||||
import java.time.Year;
 | 
			
		||||
import java.util.Comparator;
 | 
			
		||||
import java.util.Objects;
 | 
			
		||||
 | 
			
		||||
//2022-04-05 4BAIF
 | 
			
		||||
 | 
			
		||||
//2022-03-31 4BAIF
 | 
			
		||||
//Klasse abstract
 | 
			
		||||
//Methode berechneGehalt() abstract
 | 
			
		||||
//2022-01-26: Debugging toString() - mit ?-Operator gefixt
 | 
			
		||||
@@ -12,10 +15,10 @@ import java.util.Comparator;
 | 
			
		||||
 | 
			
		||||
//Umstellung auf EH
 | 
			
		||||
 | 
			
		||||
// neuer Konstruktor fuer importMitarbeiter
 | 
			
		||||
// Entwicklungsstand
 | 
			
		||||
// neuer Konstruktor Mitarbeiter(String[] zeilenTeile)  fuer importMitarbeiter
 | 
			
		||||
// setAllFields(String [] zeilenTeile)
 | 
			
		||||
 | 
			
		||||
public abstract class Mitarbeiter implements Comparable <Mitarbeiter>, Serializable
 | 
			
		||||
public abstract class Mitarbeiter implements Comparable<Mitarbeiter>, Serializable
 | 
			
		||||
//public class Mitarbeiter implements Comparable <Mitarbeiter> // zum Testen
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
@@ -32,139 +35,122 @@ public abstract class Mitarbeiter implements Comparable <Mitarbeiter>, Serializa
 | 
			
		||||
		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);
 | 
			
		||||
		setGebJahr(gebJahr);
 | 
			
		||||
		setEintrJahr(eintrJahr);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    public Mitarbeiter(String[] zeilenTeile) throws PersonalException
 | 
			
		||||
    {
 | 
			
		||||
    	if (zeilenTeile != null)
 | 
			
		||||
    	{
 | 
			
		||||
	public Mitarbeiter(String[] zeilenTeile) throws PersonalException {
 | 
			
		||||
		if (zeilenTeile != null) {
 | 
			
		||||
//    		setName();
 | 
			
		||||
//    		setGesch();
 | 
			
		||||
//    		setEintrJahr();
 | 
			
		||||
//    		setGebJahr();
 | 
			
		||||
 | 
			
		||||
			setAllFields(zeilenTeile);
 | 
			
		||||
    	}
 | 
			
		||||
    	else
 | 
			
		||||
		} else
 | 
			
		||||
			throw new PersonalException("Fehler bei Mitarbeiter(String[]): null-Referenz erhalten");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	//------------------------------------ getter ------------------------
 | 
			
		||||
    public String getName()
 | 
			
		||||
    {
 | 
			
		||||
	// ------------------------------------ getter ------------------------
 | 
			
		||||
	public String getName() {
 | 
			
		||||
		return name;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    public char getGesch()
 | 
			
		||||
    {
 | 
			
		||||
	public char getGesch() {
 | 
			
		||||
		return gesch;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    public Year getGebJahr()
 | 
			
		||||
    {
 | 
			
		||||
	public Year getGebJahr() {
 | 
			
		||||
		return gebJahr;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    public Year getEintrJahr()
 | 
			
		||||
    {
 | 
			
		||||
	public Year getEintrJahr() {
 | 
			
		||||
		return eintrJahr;
 | 
			
		||||
	}
 | 
			
		||||
    //------------------------------------ setter ------------------------
 | 
			
		||||
	// ------------------------------------ setter ------------------------
 | 
			
		||||
 | 
			
		||||
    public void setName(String name) throws PersonalException
 | 
			
		||||
    {
 | 
			
		||||
	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+") !!!");
 | 
			
		||||
				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
 | 
			
		||||
    {
 | 
			
		||||
        if  (gesch == 'm' || gesch == 'M' || gesch == 'w' || gesch == 'W' || gesch == 'x' || gesch == 'X' )
 | 
			
		||||
	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 setGebJahr(Year gebJahr) throws PersonalException
 | 
			
		||||
    {
 | 
			
		||||
        //int aktJahr = Year.now().getValue();
 | 
			
		||||
	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) )
 | 
			
		||||
			if (!gebJahr.isBefore(aktYear.minusYears(100)) && !gebJahr.isAfter(aktYear))
 | 
			
		||||
				this.gebJahr = gebJahr;
 | 
			
		||||
			else
 | 
			
		||||
                throw new PersonalException("Falscher Parameterwert fuer setGebJahr("+gebJahr+") !!!");
 | 
			
		||||
				throw new PersonalException("Falscher Parameterwert fuer setGebJahr(" + gebJahr + ") !!!");
 | 
			
		||||
		else
 | 
			
		||||
			throw new PersonalException("null-Referenz fuer setGebJahr(Year gebJahr) !!!");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    public void setEintrJahr(Year eintrJahr) throws PersonalException
 | 
			
		||||
    {
 | 
			
		||||
	public void setEintrJahr(Year eintrJahr) throws PersonalException {
 | 
			
		||||
		if (eintrJahr != null)
 | 
			
		||||
            if (gebJahr != null)
 | 
			
		||||
            {
 | 
			
		||||
			if (gebJahr != null) {
 | 
			
		||||
				int aktJahr = Year.now().getValue();
 | 
			
		||||
                if (eintrJahr.getValue() >= gebJahr.getValue()+15)
 | 
			
		||||
                    if (eintrJahr.getValue() <= aktJahr )
 | 
			
		||||
				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()+")!!!");
 | 
			
		||||
            }
 | 
			
		||||
						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
 | 
			
		||||
			// 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"
 | 
			
		||||
			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)
 | 
			
		||||
			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("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());    		
 | 
			
		||||
			throw new PersonalException(
 | 
			
		||||
					"Jahreszahlumwandlungs-Fehler (gebJahr oder eintrJahr) bei setAllFields(): " + e.getMessage());
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
    //-------------------------------------- weitere -----------------------
 | 
			
		||||
    public int berechneAlter()
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
	// -------------------------------------- weitere -----------------------
 | 
			
		||||
	public int berechneAlter() {
 | 
			
		||||
		// return 2021 - gebJahr; // ganz schlecht...
 | 
			
		||||
 | 
			
		||||
		// Bessere Loesung in Einzelschritten:
 | 
			
		||||
@@ -174,12 +160,11 @@ public abstract class Mitarbeiter implements Comparable <Mitarbeiter>, Serializa
 | 
			
		||||
		// return alter;
 | 
			
		||||
 | 
			
		||||
		// Bessere Loesung in einem Schritt:
 | 
			
		||||
        return (gebJahr != null?Year.now().getValue() - gebJahr.getValue():-99);  // Fehlercode       
 | 
			
		||||
		return (gebJahr != null ? Year.now().getValue() - gebJahr.getValue() : -99); // Fehlercode
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    public int berechneDienstalter()
 | 
			
		||||
    {
 | 
			
		||||
        return (eintrJahr != null?Year.now().getValue() - eintrJahr.getValue():-99);  // Fehlercode       
 | 
			
		||||
	public int berechneDienstalter() {
 | 
			
		||||
		return (eintrJahr != null ? Year.now().getValue() - eintrJahr.getValue() : -99); // Fehlercode
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// public float berechneGehalt()
 | 
			
		||||
@@ -204,21 +189,19 @@ public abstract class Mitarbeiter implements Comparable <Mitarbeiter>, Serializa
 | 
			
		||||
 | 
			
		||||
	@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())
 | 
			
		||||
			else if (berechneGehalt() < o.berechneGehalt())
 | 
			
		||||
				return -1;
 | 
			
		||||
			else
 | 
			
		||||
				return 0;
 | 
			
		||||
		}
 | 
			
		||||
		else // Annahme bis zum ExceptionHandling, dann NullPointerException
 | 
			
		||||
		} else // Annahme bis zum ExceptionHandling, dann NullPointerException
 | 
			
		||||
			return 1;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// ----------------------------------- innere Klasse --------------------------------
 | 
			
		||||
	// ----------------------------------- innere Klasse
 | 
			
		||||
	// --------------------------------
 | 
			
		||||
 | 
			
		||||
	public static class AlterComparator implements Comparator<Mitarbeiter> {
 | 
			
		||||
 | 
			
		||||
@@ -237,37 +220,58 @@ public abstract class Mitarbeiter implements Comparable <Mitarbeiter>, Serializa
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    // ------------------------------------ toString() / print --------------------------------------
 | 
			
		||||
    public String toString()
 | 
			
		||||
    {
 | 
			
		||||
	// ------------------------------------- equals / hashCode
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	public int hashCode() {
 | 
			
		||||
		return Objects.hash(eintrJahr, gebJahr, gesch, name);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	public boolean equals(Object obj) {
 | 
			
		||||
		if (this == obj)
 | 
			
		||||
			return true;
 | 
			
		||||
		if (obj == null)
 | 
			
		||||
			return false;
 | 
			
		||||
		if (getClass() != obj.getClass())
 | 
			
		||||
			return false;
 | 
			
		||||
		Mitarbeiter other = (Mitarbeiter) obj;
 | 
			
		||||
		return Objects.equals(eintrJahr, other.eintrJahr) && Objects.equals(gebJahr, other.gebJahr)
 | 
			
		||||
				&& gesch == other.gesch && Objects.equals(name, other.name);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// ------------------------------------ toString() / print
 | 
			
		||||
	// --------------------------------------
 | 
			
		||||
	public String toString() {
 | 
			
		||||
		String geschlecht;
 | 
			
		||||
        switch(gesch)
 | 
			
		||||
        {
 | 
			
		||||
		switch (gesch) {
 | 
			
		||||
		case 'm':
 | 
			
		||||
            case 'M':   geschlecht = "maennlich"; break;
 | 
			
		||||
		case 'M':
 | 
			
		||||
			geschlecht = "maennlich";
 | 
			
		||||
			break;
 | 
			
		||||
		case 'w':
 | 
			
		||||
            case 'W':   geschlecht = "weiblich"; break;
 | 
			
		||||
		case 'W':
 | 
			
		||||
			geschlecht = "weiblich";
 | 
			
		||||
			break;
 | 
			
		||||
		case 'x':
 | 
			
		||||
            case 'X':   geschlecht = "divers"; break;
 | 
			
		||||
            default :   geschlecht = "unbekannt"; 
 | 
			
		||||
		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 void print() {
 | 
			
		||||
		System.out.println(this); // System.out.println(toString())
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    public String toStringCsv()
 | 
			
		||||
    {
 | 
			
		||||
	public String toStringCsv() {
 | 
			
		||||
		char sep = ';'; // "Trennzeichen" zwischen den Attribut-Werten
 | 
			
		||||
 | 
			
		||||
		StringBuilder sb = new StringBuilder();
 | 
			
		||||
@@ -280,8 +284,5 @@ public abstract class Mitarbeiter implements Comparable <Mitarbeiter>, Serializa
 | 
			
		||||
 | 
			
		||||
		return (sb.toString());
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -15,7 +15,7 @@ import java.util.Collections;
 | 
			
		||||
import java.util.Iterator;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
// 2022-04-01 4BAIF
 | 
			
		||||
// 2022-04-05 4BAIF
 | 
			
		||||
 | 
			
		||||
// Umgestellt auf ArrayList
 | 
			
		||||
// mit public float berechneDurchnittsalter()
 | 
			
		||||
@@ -51,7 +51,10 @@ import java.util.List;
 | 
			
		||||
 | 
			
		||||
// 2022-03-29 exportMitarbeiterCsv
 | 
			
		||||
 | 
			
		||||
// 2022-04-01 importMitarbeiterCsc Vorbereitung
 | 
			
		||||
// 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)
 | 
			
		||||
 | 
			
		||||
public class Personalbuero {
 | 
			
		||||
	private ArrayList<Mitarbeiter> mitarbeiter; // eine ArrayList ist "getypt"
 | 
			
		||||
@@ -77,7 +80,11 @@ public class Personalbuero {
 | 
			
		||||
				// if (anzahl < mitarbeiter.length)
 | 
			
		||||
				// {
 | 
			
		||||
				// mitarbeiter[anzahl] = ma;
 | 
			
		||||
				if (!mitarbeiter.contains(ma)) {
 | 
			
		||||
					return mitarbeiter.add(ma); // liefert immer true
 | 
			
		||||
				} else {
 | 
			
		||||
					throw new PersonalException("Fehler bei aufnehmen(): Mitarbeiter/in schon vorhanden");
 | 
			
		||||
				}
 | 
			
		||||
				// anzahl ++;
 | 
			
		||||
				// return true;
 | 
			
		||||
				// }
 | 
			
		||||
@@ -317,8 +324,8 @@ public class Personalbuero {
 | 
			
		||||
	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";
 | 
			
		||||
		//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));) {
 | 
			
		||||
@@ -333,21 +340,27 @@ public class Personalbuero {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
//	loadMitarbeiter Variante 2 OHNE suppressWarning -> empfohlen
 | 
			
		||||
	public void loadMitarbeiter() throws PersonalException {
 | 
			
		||||
	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";
 | 
			
		||||
		//String strPfadName = "c:\\scratch\\mitarbeiter.ser"; 	
 | 
			
		||||
		String strPfadName = "c:"+ fSep + "scratch" + fSep + "mitarbeiter.ser";		
 | 
			
		||||
 | 
			
		||||
		try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(strPfadName))) {
 | 
			
		||||
		
 | 
			
		||||
			List<?> tempMitarbeiter = (List<?>) ois.readObject();
 | 
			
		||||
		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);
 | 
			
		||||
			for (Object o : tempMitarbeiter)
 | 
			
		||||
			{
 | 
			
		||||
				if (o instanceof Mitarbeiter)
 | 
			
		||||
				{
 | 
			
		||||
					aufnehmen((Mitarbeiter)o);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		
 | 
			
		||||
@@ -381,44 +394,53 @@ public class Personalbuero {
 | 
			
		||||
//		}
 | 
			
		||||
//	}
 | 
			
		||||
	
 | 
			
		||||
	public void exportMitarbeiter() throws PersonalException {
 | 
			
		||||
	public void exportMitarbeiter() throws PersonalException
 | 
			
		||||
	{
 | 
			
		||||
		
 | 
			
		||||
		String fSep = System.getProperty("file.separator");
 | 
			
		||||
		String strPfadName = "c:" + fSep + "scratch" + fSep + "mitarbeiter.txt";
 | 
			
		||||
		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");
 | 
			
		||||
		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());
 | 
			
		||||
			throw new PersonalException("Eingabe/Ausgabe-Fehler bei exportMitarbeiter()" 
 | 
			
		||||
										+ e.getMessage());
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public void exportMitarbeiterCsv() throws PersonalException {
 | 
			
		||||
	public void exportMitarbeiterCsv() throws PersonalException
 | 
			
		||||
	{
 | 
			
		||||
		String fSep = System.getProperty("file.separator");
 | 
			
		||||
		String strPfadName = "c:" + fSep + "scratch" + fSep + "mitarbeiter.csv";
 | 
			
		||||
		String strPfadName = "c:"+ fSep + "scratch" + fSep + "mitarbeiter.csv";	
 | 
			
		||||
		String nLn = System.getProperty("line.separator");
 | 
			
		||||
		
 | 
			
		||||
		try (BufferedWriter bw = new BufferedWriter(new FileWriter(strPfadName))) {
 | 
			
		||||
		try (BufferedWriter bw = new BufferedWriter(new FileWriter(strPfadName)))
 | 
			
		||||
		{
 | 
			
		||||
			StringBuilder sb = new StringBuilder(100000);
 | 
			
		||||
			for (Mitarbeiter mit : mitarbeiter)
 | 
			
		||||
				sb.append(mit.toStringCsv()).append(nLn); // .append("\n");
 | 
			
		||||
			bw.write(sb.toString());
 | 
			
		||||
		} catch (IOException e) {
 | 
			
		||||
			throw new PersonalException("Eingabe/Ausgabe-Fehler bei exportMitarbeiterCsv()" + e.getMessage());
 | 
			
		||||
			throw new PersonalException("Eingabe/Ausgabe-Fehler bei exportMitarbeiterCsv()" 
 | 
			
		||||
										+ e.getMessage());
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public void importMitarbeiterCsv() throws PersonalException // TODO
 | 
			
		||||
	// NEU 2022-04-06 mit Freelancer und Arzt
 | 
			
		||||
	public void importMitarbeiterCsv() throws PersonalException
 | 
			
		||||
	{
 | 
			
		||||
		String fSep = System.getProperty("file.separator"); 
 | 
			
		||||
		String strPfadName = "c:" + fSep + "scratch" + fSep + "mitarbeiter.csv";
 | 
			
		||||
		String strPfadName = "c:"+fSep+"scratch"+fSep+"mitarbeiter.csv";
 | 
			
		||||
		
 | 
			
		||||
		try (BufferedReader br = new BufferedReader(new FileReader(strPfadName))) {
 | 
			
		||||
		try(BufferedReader br = new BufferedReader(new FileReader(strPfadName)))
 | 
			
		||||
		{
 | 
			
		||||
			String zeile;
 | 
			
		||||
			String[] zeilenTeile;
 | 
			
		||||
			String sep = ";"; // erwartetes Trennzeichen in der csv-Datei
 | 
			
		||||
@@ -426,26 +448,39 @@ public class Personalbuero {
 | 
			
		||||
			// Muster: "Vorauslesen"
 | 
			
		||||
			zeile = br.readLine(); // wenn keine Zeile gefunden, dann return null
 | 
			
		||||
			
 | 
			
		||||
			while (zeile != null) {
 | 
			
		||||
			while(zeile != null)
 | 
			
		||||
			{
 | 
			
		||||
				zeilenTeile = zeile.trim().split(sep);
 | 
			
		||||
				
 | 
			
		||||
				// Welcher Konstruktor wird aufgerufen?
 | 
			
		||||
				// Wie ermitteln wir den Mitarbeiter-Typ?
 | 
			
		||||
				
 | 
			
		||||
				if (zeile.contains("Angestellter")) {
 | 
			
		||||
				if (zeile.contains("Angestellter"))
 | 
			
		||||
				{
 | 
			
		||||
					aufnehmen(new Angestellter(zeilenTeile));
 | 
			
		||||
				} else
 | 
			
		||||
					; // if ((zeile.contains("Freelancer"))
 | 
			
		||||
						// else
 | 
			
		||||
						// if ((zeile.contains("Arzt"))
 | 
			
		||||
						// else unbekannter Mitarbeiter-Typ
 | 
			
		||||
				}
 | 
			
		||||
				else
 | 
			
		||||
					if (zeile.contains("Freelancer"))
 | 
			
		||||
					{
 | 
			
		||||
						aufnehmen(new Freelancer(zeilenTeile));
 | 
			
		||||
					}							
 | 
			
		||||
					else
 | 
			
		||||
						if (zeile.contains("Arzt"))
 | 
			
		||||
						{
 | 
			
		||||
							aufnehmen(new Arzt(zeilenTeile));
 | 
			
		||||
						}								
 | 
			
		||||
						else 
 | 
			
		||||
							; // hier Mitarbeiter-Typ(en)
 | 
			
		||||
							  // zukuenftiger Erweiterungen ergaenzen
 | 
			
		||||
				zeile = br.readLine();
 | 
			
		||||
			}
 | 
			
		||||
			
 | 
			
		||||
		} catch (FileNotFoundException e) {
 | 
			
		||||
			throw new PersonalException("Datei-Fehler bei importMitarbeiterCsv(): " + e.getMessage());
 | 
			
		||||
			throw new PersonalException("Datei-Fehler bei importMitarbeiterCsv(): " 
 | 
			
		||||
					+ e.getMessage());
 | 
			
		||||
		} catch (IOException e) {
 | 
			
		||||
			throw new PersonalException("Eingabe/Ausgabe-Fehler bei importMitarbeiterCsv(): " + e.getMessage());
 | 
			
		||||
			throw new PersonalException("Eingabe/Ausgabe-Fehler bei importMitarbeiterCsv(): " 
 | 
			
		||||
					+ e.getMessage());
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@ import model.Freelancer;
 | 
			
		||||
import model.PersonalException;
 | 
			
		||||
import model.Personalbuero;
 | 
			
		||||
 | 
			
		||||
// 2022-04-01
 | 
			
		||||
// 2022-04-05
 | 
			
		||||
 | 
			
		||||
public class TestImport
 | 
			
		||||
{
 | 
			
		||||
@@ -22,7 +22,8 @@ public class TestImport
 | 
			
		||||
			System.out.println();
 | 
			
		||||
			
 | 
			
		||||
			// zeilenTeile-Konstruktoren testen
 | 
			
		||||
			// TODO Freelancer
 | 
			
		||||
			// 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		
 | 
			
		||||
@@ -34,14 +35,13 @@ public class TestImport
 | 
			
		||||
			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
 | 
			
		||||
				pb.aufnehmen(f2); // Fehler schon vorhanden // TODO kein Fehler	
 | 
			
		||||
			}
 | 
			
		||||
			catch (PersonalException e) { 
 | 
			
		||||
				System.out.println("!!! Fehler bei TestImport !!!" +nLn+ e.getMessage());
 | 
			
		||||
@@ -52,13 +52,15 @@ public class TestImport
 | 
			
		||||
			System.out.println();
 | 
			
		||||
			
 | 
			
		||||
			Angestellter a1 = new Angestellter("Alfred", 'm', Year.of(1977), Year.now());
 | 
			
		||||
			pb.aufnehmen(a1); // Fehler schon vorhanden		
 | 
			
		||||
			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());
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user