// HrRemote.java

package hr;

import javax.ejb.*;
import java.rmi.*;
import java.util.*;

public interface HrRemote extends EJBObject
{
    //Department methods
    public void addDept(Dept dept)
        throws CreateException, RemoteException;

    public void removeDept(Dept dept)
        throws RemoveException, RemoteException;

    public void setDept(Dept dept)
        throws FinderException, RemoteException;

    public Collection getDepts()
        throws FinderException, RemoteException;

    public Collection getDeptEmployees(Dept dept)
        throws FinderException, RemoteException;

    //Employee methods
    public void addEmp(Emp emp)
        throws CreateException, RemoteException;

    public void removeEmp(Emp emp)
        throws RemoveException, RemoteException;

    public void setEmp(Emp emp)
        throws FinderException, RemoteException;

    public Collection getEmps()
        throws FinderException, RemoteException;

    public Address getEmpAddress(Emp emp)
        throws FinderException, RemoteException;

    public void setEmpAddress(Emp emp, Address address)
        throws FinderException, RemoteException;

    public Dept getEmpDepartment(Emp emp)
        throws FinderException, RemoteException;

    public void setEmpDepartment(Emp emp, Dept dept)
        throws FinderException, RemoteException;

    public Collection getEmpProjects(Emp emp)
        throws FinderException, RemoteException;

    public void setEmpProjects(Emp emp, Collection projects)
        throws FinderException, RemoteException;

    public Collection getEmpPhones(Emp emp)
        throws FinderException, RemoteException;

    public void setEmpPhones(Emp emp, Collection phones)
        throws FinderException, RemoteException;

    public Emp getEmpManager(Emp emp)
        throws FinderException, RemoteException;

    public void setEmpManager(Emp emp, Emp mgr)
        throws FinderException, RemoteException;

    public Collection getMgrDirects(Emp mgr)
        throws FinderException, RemoteException;

    public void setMgrDirects(Emp mgr, Collection directs)
        throws FinderException, RemoteException;

    //Project methods
    public void addProject(Project project)
        throws CreateException, RemoteException;

    public void removeProject(Project project)
        throws RemoveException, RemoteException;

    public void setProject(Project project)
        throws FinderException, RemoteException;

    public Collection getProjects()
        throws FinderException, RemoteException;

    public Collection getProjectEmployees(Project project)
        throws FinderException, RemoteException;

    public void setProjectEmployees(Project project, Collection emps)
        throws FinderException, RemoteException;

}
