package haipham.webnntp.ejb.folder;

import java.rmi.*;
import javax.ejb.*;
import java.util.Collection;
import haipham.webnntp.ejb.user.*;

public interface FolderHome extends EJBHome{
    public final static String findTopLevelFolders_query =
        " Folder.owner = $1 and Folder.parentFolder is null";

    /** Create a folder.
     */ 
    public Folder create(Folder parentFolder, String folderName,
                                    User user, String folderType)
        throws CreateException, RemoteException;

    /** Create a new Folder that has the same owner as the parent folder.
     */ 
    public Folder create(Folder parentFolder, String folderName, String type)
        throws CreateException, RemoteException;

    public Folder findByPrimaryKey(long folderId)
        throws FinderException, RemoteException;

    /** Find all children (1st leve only) of folder having id = folderId */
    public Collection findByParentFolder(Folder parent)
        throws FinderException, RemoteException;

    /** Find all folders belong to this user */
    public Collection findByOwner(User owner)
        throws FinderException, RemoteException;

    public Collection findTopLevelFolders(User owner)
        throws FinderException, RemoteException;
}
