All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.formkiq.server.dao.FolderDao Maven / Gradle / Ivy

There is a newer version: 0.6.1
Show newest version
package com.formkiq.server.dao;

import java.util.List;

import org.apache.commons.lang3.tuple.Pair;

import com.formkiq.server.domain.Folder;
import com.formkiq.server.domain.FolderAccess;
import com.formkiq.server.domain.FolderForm;
import com.formkiq.server.domain.User;
import com.formkiq.server.domain.type.FolderDTO;
import com.formkiq.server.domain.type.FolderFormStatus;
import com.formkiq.server.domain.type.FolderFormsListDTO;
import com.formkiq.server.domain.type.FolderListDTO;
import com.formkiq.server.domain.type.FolderStatus;
import com.formkiq.server.domain.type.FormDTO;
import com.formkiq.server.domain.type.FormOrderByField;
import com.formkiq.server.domain.type.SortDirection;

/**
 *  Folder Database Operations.
 *
 */
public interface FolderDao {

    /**
     * Deletes Folder.
     * @param folder {@link String}
     */
    void deleteFolder(final String folder);

    /**
     * Deletes Form.
     * @param folder {@link String}
     * @param uuid {@link String}
     * @param isparentuuid boolean
     */
    void deleteForm(final String folder, final String uuid,
            boolean isparentuuid);

    /**
     * Get Folder.
     * @param uuid {@link String}
     * @return {@link Folder}
     */
    Folder findFolder(String uuid);

    /**
     * Find Folder Access.
     * @param user {@link User}
     * @param folder {@link String}
     * @return {@link FolderAccess}
     */
    FolderAccess findFolderAccess(final User user, final String folder);

    /**
     * Finds Folder DTO.
     * @param user {@link User}
     * @param folder {@link String}
     * @return {@link FolderDTO}
     */
    FolderDTO findFolderDTO(final User user, final String folder);

    /**
     * Find Folder List.
     * @param user {@link User}
     * @param token {@link String}
     * @return {@link FolderListDTO}
     */
    FolderListDTO findFolderList(User user, String token);

    /**
     * Finds Folder DTO.
     * @param email {@link String}
     * @param status {@link FolderStatus}
     * @return {@link List}
     */
    List findFoldersDTO(String email, FolderStatus status);

    /**
     * Find Form.
     * @param folder {@link String}
     * @param form {@link String}
     * @return {@link FolderForm}
     */
    FolderForm findForm(final String folder, final String form);

    /**
     * Find Form.
     * @param user {@link User}
     * @param folder {@link String}
     * @param form {@link String}
     * @return {@link Pair}
     */
    Pair findForm(final User user,
            final String folder, final String form);

    /**
     * Find Form DTO.
     * @param folder {@link String}
     * @param uuid {@link String}
     * @return {@link FormDTO}
     */
    FormDTO findFormDTO(String folder, String uuid);

    /**
     * Finds forms in folder.
     * @param folder {@link String}
     * @param parentUUID {@link String}
     * @param text {@link String}
     * @param orderby {@link FormOrderByField}
     * @param direction {@link SortDirection}
     * @param status {@link List}
     * @param token {@link String}
     * @return {@link FolderFormsListDTO}
     */
    FolderFormsListDTO findForms(String folder, String parentUUID, String text,
            FormOrderByField orderby, SortDirection direction,
            List status, String token);

    /**
     * Whether a folder has files.
     * @param folder {@link String}
     * @return boolean
     */
    boolean hasFiles(String folder);

    /**
     * Whether Form has Children.
     * @param folder {@link String}
     * @param uuid {@link String}
     * @return boolean
     */
    boolean hasFormChildren(String folder, String uuid);

    /**
     * Save Folder.
     * @param folder {@link Folder}
     * @return {@link Folder}
     */
    Folder saveFolder(Folder folder);

    /**
     * Save Folder Access.
     * @param access {@link FolderAccess}
     * @return {@link FolderAccess}
     */
    FolderAccess saveFolderAccess(FolderAccess access);

    /**
     * Saves Form.
     * @param form {@link FolderForm}
     * @return {@link FolderForm}
     */
    FolderForm saveForm(final FolderForm form);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy