package de.fhswf.in.inf.se.projektthemenvergabe.model; import java.util.ArrayList; import java.util.Collections; import java.util.List; import javafx.beans.Observable; import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.StringProperty; import javafx.util.Callback; /** * * Class Organisation to represents data. * * @author Dina-Marie Hanxleden & Stefan Suhren * @version 1.0 */ public class Organisation { private StringProperty name = new SimpleStringProperty(""); private List ansprechpartner = new ArrayList<>(); /** * Generates an extractor that fires when a property of a list value * changes. * * @return The extractor. */ public static Callback extractor() { return organisation -> new Observable[] { organisation.nameProperty() }; } /** * Constructor of {@link Organisation}. * * @param name * The name of the {@link Organisation}. */ public Organisation(String name) { if (name == null) { throw new IllegalArgumentException("Name can't be null."); } if (name.isEmpty()) { throw new IllegalArgumentException("Name can't be empty."); } this.name.set(name); } /** * Getter for property name. * * @return Returns the name. */ public final StringProperty nameProperty() { return this.name; } /** * Getter for name. * * @return Returns the name. */ public final String getName() { return this.nameProperty().get(); } /** * Setter for Name. * * @param name * The name to set. */ public final void setName(final String name) { this.nameProperty().set(name); } /** * Getter for list of ansprechpartner. * * @return Returns the list of ansprechpartner. */ public List getAnsprechpartner() { return Collections.unmodifiableList(ansprechpartner); } /** * Füge einen Ansprechpartner hinzu. * * @param ansprechpartner */ public void addAnsprechpartner(Ansprechpartner ansprechpartner) { if (ansprechpartner == null) { throw new IllegalArgumentException( "Es muss ein Ansprechpartner zum Hinzufügen gegeben sein."); } this.ansprechpartner.add(ansprechpartner); } /** * Remove the Ansprechpartner. * * @param ansprechpartner */ public void removeAnsprechpartner(Ansprechpartner ansprechpartner) { if (ansprechpartner == null) { throw new IllegalArgumentException( "Es muss ein Ansprechpartner zum Entfernen gegeben sein."); } this.ansprechpartner.remove(ansprechpartner); } /* * (non-Javadoc) * * @see java.lang.Object#toString() */ @Override public String toString() { return name.get(); } /* * (non-Javadoc) * * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(Object obj) { if (!(obj instanceof Organisation)) { return false; } return ((Organisation) obj).name.get().equals(name.get()); } }