package org.dddlib.organisation.domain; import org.apache.commons.lang3.builder.ToStringBuilder; import org.dayatang.utils.Assert; import javax.persistence.*; import java.util.Date; import java.util.HashSet; import java.util.Set; @Entity @DiscriminatorValue("Employee") public class Employee extends Party { private static final long serialVersionUID = -7339118476080239701L; @ManyToOne(cascade = CascadeType.PERSIST) @JoinColumn(name = "person_id") private Person person; protected Employee() { } public Employee(Person person) { Assert.notNull(person, "Person is null!"); setName(person.getName().toString()); this.person = person; } public Person getPerson() { return person; } public Set<Post> getPosts(Date date) { return new HashSet<Post>(PostHolding.findPostsOfEmployee(this, date)); } @Override public String toString() { return new ToStringBuilder(this).append(getName()).build(); } }