business.Klant.java Source code

Java tutorial

Introduction

Here is the source code for business.Klant.java

Source

package business;
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.io.Serializable;
import java.util.Objects;
import java.util.Scanner;
import org.apache.commons.validator.routines.EmailValidator;
import org.hibernate.annotations.Cascade;

import java.util.Set;

import javax.persistence.*;

@Entity
@Table
public class Klant implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "klant_id")
    private long id;

    @Column
    private String voornaam;

    @Column
    private String achternaam;

    @Column
    private String tussenvoegsel;

    @Column
    private String email;

    @OneToMany(cascade = CascadeType.ALL, targetEntity = Factuur.class, mappedBy = "klant", orphanRemoval = true, fetch = FetchType.LAZY)
    private Set<Bestelling> bestellingSet;

    @OneToMany(cascade = CascadeType.ALL, targetEntity = Factuur.class, mappedBy = "klant", orphanRemoval = true, fetch = FetchType.LAZY)
    private Set<Factuur> factuurSet;

    @OneToMany(cascade = CascadeType.ALL, targetEntity = Account.class, mappedBy = "klant", orphanRemoval = true, fetch = FetchType.LAZY)
    private Set<Account> accountSet;

    /* @ManyToMany
    @JoinTable(name = "klant_adres")
    @JoinColumns({
     @JoinColumn(name = "klant_id", referencedColumnName = "klant_id"), 
     @JoinColumn(name = "adrestype_id", referencedColumnName = "adrestype_id"), 
     @JoinColumn(name = "adres_id", referencedColumnName = "adres_id")}) */
    /*@ManyToMany(fetch = FetchType.EAGER)
     @JoinTable(name="klant_adres",
     joinColumns=@JoinColumn(name="klant_id"),
     inverseJoinColumns=@JoinColumn(name="adrestype"))
     @MapKeyJoinColumn(name = "adres_id", table = "klant_adres")
    private Map<Adres, AdresType> adresMap = new HashMap <Adres, AdresType>();*/
    @OneToMany(cascade = CascadeType.ALL, targetEntity = KlantAdres.class, mappedBy = "klant", orphanRemoval = true, fetch = FetchType.LAZY)
    private Set<KlantAdres> klantAdresSet;

    public Klant() {
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getVoornaam() {
        return voornaam;
    }

    public void setVoornaam(String voornaam) {
        this.voornaam = voornaam;
    }

    public String getAchternaam() {
        return achternaam;
    }

    public void setAchternaam(String achternaam) {
        this.achternaam = achternaam;
    }

    public String getTussenvoegsel() {
        return tussenvoegsel;
    }

    public void setTussenvoegsel(String tussenvoegsel) {
        this.tussenvoegsel = tussenvoegsel;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        EmailValidator emailValidator = EmailValidator.getInstance();
        Scanner input = new Scanner(System.in);

        while (emailValidator.isValid(email) == false) {
            System.out.println("Incorrecte email. Voer uw emailadres opnieuw in");
            email = input.next();
        }

        this.email = email;
    }

    public void setBestellingSet(Set<Bestelling> bestellingSet) {
        this.bestellingSet = bestellingSet;
    }

    public Set<Bestelling> getBestellingSet() {
        return bestellingSet;
    }

    public void setAccountSet(Set<Account> accountSet) {
        this.accountSet = accountSet;
    }

    public Set<Account> getAccountSet() {
        return accountSet;
    }

    public void setFactuurSet(Set<Factuur> factuurSet) {
        this.factuurSet = factuurSet;
    }

    public Set<Factuur> getFactuurSet() {
        return factuurSet;
    }

    public void setKlantAdres(Set<KlantAdres> klantAdresSet) {
        this.klantAdresSet = klantAdresSet;
    }

    public Set<KlantAdres> getKlantAdresSet() {
        return klantAdresSet;
    }
    /*public void setAdresMap(Map<Adres, AdresType> adresMap){
       this.adresMap = adresMap;
    }
        
    public Map<Adres, AdresType> getAdresMap(){
       return adresMap;
    }*/

    @Override
    public String toString() {
        return "\n\tKlant_id: " + id + "\nVoornaam: " + voornaam + "\nTussenvoegsel: " + tussenvoegsel
                + "\nAchternaam: " + achternaam + "\nEmail: " + email + "\n";
    }

    /*
       @Override
       public int hashCode() {
          final int prime = 31;
          int result = 1;
          result = prime * result + ((accountSet == null) ? 0 : accountSet.hashCode());
          result = prime * result + ((achternaam == null) ? 0 : achternaam.hashCode());
          result = prime * result + ((adresMap == null) ? 0 : adresMap.hashCode());
          result = prime * result + ((bestellingSet == null) ? 0 : bestellingSet.hashCode());
          result = prime * result + ((email == null) ? 0 : email.hashCode());
          result = prime * result + ((factuurSet == null) ? 0 : factuurSet.hashCode());
          result = prime * result + (int) (id ^ (id >>> 32));
          result = prime * result + ((tussenvoegsel == null) ? 0 : tussenvoegsel.hashCode());
          result = prime * result + ((voornaam == null) ? 0 : voornaam.hashCode());
          return result;
       }
        
        
       @Override
       public boolean equals(Object obj) {
          if (this == obj)
     return true;
          if (obj == null)
     return false;
          if (getClass() != obj.getClass())
     return false;
          Klant other = (Klant) obj;
          if (accountSet == null) {
     if (other.accountSet != null)
        return false;
          } else if (!accountSet.equals(other.accountSet))
     return false;
          if (achternaam == null) {
     if (other.achternaam != null)
        return false;
          } else if (!achternaam.equals(other.achternaam))
     return false;
          if (adresMap == null) {
     if (other.adresMap != null)
        return false;
          } else if (!adresMap.equals(other.adresMap))
     return false;
          if (bestellingSet == null) {
     if (other.bestellingSet != null)
        return false;
          } else if (!bestellingSet.equals(other.bestellingSet))
     return false;
          if (email == null) {
     if (other.email != null)
        return false;
          } else if (!email.equals(other.email))
     return false;
          if (factuurSet == null) {
     if (other.factuurSet != null)
        return false;
          } else if (!factuurSet.equals(other.factuurSet))
     return false;
          if (id != other.id)
     return false;
          if (tussenvoegsel == null) {
     if (other.tussenvoegsel != null)
        return false;
          } else if (!tussenvoegsel.equals(other.tussenvoegsel))
     return false;
          if (voornaam == null) {
     if (other.voornaam != null)
        return false;
          } else if (!voornaam.equals(other.voornaam))
     return false;
          return true;
       }*/

    @Override
    public int hashCode() {
        int hash = 7;
        //hash = 89  hash + (this.name != null ? this.name.hashCode() : 0);
        hash = 67 * hash + (int) (this.id ^ (this.id >>> 32));
        hash = 67 * hash + Objects.hashCode(this.voornaam);
        hash = 67 * hash + Objects.hashCode(this.tussenvoegsel);
        hash = 67 * hash + Objects.hashCode(this.achternaam);
        hash = 67 * hash + Objects.hashCode(this.email);
        // hash = 67 * hash + Objects.hashCode(this.accountSet);
        // hash = 67 * hash + Objects.hashCode(this.bestellingSet);
        // hash = 67 * hash + Objects.hashCode(this.factuurSet);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Klant other = (Klant) obj;
        if (!Objects.equals(this.voornaam, other.voornaam)) {
            return false;
        }
        if (!Objects.equals(this.tussenvoegsel, other.tussenvoegsel)) {
            return false;
        }
        if (!Objects.equals(this.achternaam, other.achternaam)) {
            return false;
        }
        if (!Objects.equals(this.email, other.email)) {
            return false;
        }
        /* if (!Objects.equals(this.factuurSet, other.factuurSet)) {
        return false;
         }
         if (!Objects.equals(this.bestellingSet, other.bestellingSet)) {
            return false;
         }
         if (!Objects.equals(this.accountSet, other.accountSet)){
            return false;
         }*/
        return true;
    }
}