/*
- * Copyright (C) 2015 Roland Haeder
+ * Copyright (C) 2016, 2017 Roland Häder
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
package org.mxchange.jcontactsbusiness.department;
import java.io.Serializable;
-import org.mxchange.jcontactsbusiness.BusinessContact;
+import java.util.Calendar;
+import org.mxchange.jcontactsbusiness.branch.BranchOffice;
import org.mxchange.jcontactsbusiness.employee.Employee;
+import org.mxchange.jcontactsbusiness.headquarters.HeadQuartersData;
+import org.mxchange.jusercore.model.user.User;
+import org.mxchange.jcontactsbusiness.BusinessBasicData;
/**
* A POJI for company departments
* <p>
- * @author Roland Haeder
+ * @author Roland Häder<roland@mxchange.org>
*/
public interface Department extends Serializable {
* <p>
* @return Connection to company contact
*/
- public BusinessContact getDepartmentCompany ();
+ BusinessBasicData getDepartmentCompany ();
/**
* Setter for connection to company contact
* <p>
* @param departmentCompany Connection to company contact
*/
- public void setDepartmentCompany (final BusinessContact departmentCompany);
+ void setDepartmentCompany (final BusinessBasicData departmentCompany);
+
+ /**
+ * Getter for connection to company headquarters
+ * <p>
+ * @return Connection to company headquarters
+ */
+ HeadQuartersData getDepartentHeadquarters ();
+
+ /**
+ * Setter for connection to company headquarters
+ * <p>
+ * @param departentHeadquarters Connection to company headquarters
+ */
+ void setDepartentHeadquarters (final HeadQuartersData departentHeadquarters);
+
+ /**
+ * Getter for connection to company branch office
+ * <p>
+ * @return Connection to company branch office
+ */
+ BranchOffice getDepartmentBranchOffice ();
+
+ /**
+ * Setter for connection to company branch office
+ * <p>
+ * @param departmentBranchOffice Connection to company branch office
+ */
+ void setDepartmentBranchOffice (final BranchOffice departmentBranchOffice);
/**
* Getter for department id
* <p>
* @return Department id
*/
- public Long getDepartmentId ();
+ Long getDepartmentId ();
/**
* Setter for department id
* <p>
* @param departmentId Department id
*/
- public void setDepartmentId (final Long departmentId);
+ void setDepartmentId (final Long departmentId);
/**
* Getter for department lead employee
* <p>
* @return Department lead employee
*/
- public Employee getDepartmentLead ();
+ Employee getDepartmentLead ();
/**
* Setter for department lead employee
* <p>
* @param departmentLead Department lead employee
*/
- public void setDepartmentLead (final Employee departmentLead);
+ void setDepartmentLead (final Employee departmentLead);
/**
* Getter for department name
* <p>
* @return Department name
*/
- public String getDepartmentName ();
+ String getDepartmentName ();
/**
* Setter for department name
* <p>
* @param departmentName Department name
*/
- public void setDepartmentName (final String departmentName);
+ void setDepartmentName (final String departmentName);
+
+ /**
+ * Getter for user owner instance
+ * <p>
+ * @return User owner instance
+ */
+ User getDepartmentUserOwner ();
+
+ /**
+ * Setter for user owner instance
+ * <p>
+ * @param departmentUserOwner User owner instance
+ */
+ void setDepartmentUserOwner (final User departmentUserOwner);
+
+ /**
+ * Getter for timestamp when this entry has been created
+ * <p>
+ * @return Timestamp when this entry has been created
+ */
+ Calendar getDepartmentCreated ();
+
+ /**
+ * Setter for timestamp when this entry has been created
+ * <p>
+ * @param departmentCreated Timestamp when this entry has been created
+ */
+ void setDepartmentCreated (final Calendar departmentCreated);
@Override
- public boolean equals (final Object object);
+ boolean equals (final Object object);
@Override
- public int hashCode ();
+ int hashCode ();
}