/*
* Copyright (C) 2003-2008 eXo Platform SAS.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License
* as published by the Free Software Foundation; either version 3
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see<http://www.gnu.org/licenses/>.
*/
package org.exoplatform.services.cms.documents;
import java.util.List;
import javax.jcr.Node;
import org.exoplatform.services.cms.documents.impl.DocumentType;
import org.exoplatform.services.jcr.ext.common.SessionProvider;
/**
* Get documents by mime types
*/
public interface DocumentTypeService {
/**
* Get all supported document type
* @return supported types
*/
public List<String> getAllSupportedType();
/**
* Get all documents by kind of document type
* @param documentType Kind of document(Images, Video,...)
* @param workspace The name of workspace will be used to get documents
* @param sessionProvider
* @return all documents by kind of document type
* @throws Exception
*/
public List<Node> getAllDocumentsByDocumentType(String documentType,
String workspace,
SessionProvider sessionProvider) throws Exception;
/**
* Get all document by mimetype
* @param workspace The name of workspace will be used to get documents
* @param sessionProvider
* @param mimeType The mime type of node(For example: image/jpg)
* @return all documents by mime type
* @throws Exception
*/
public List<Node> getAllDocumentsByType(String workspace,
SessionProvider sessionProvider,
String mimeType) throws Exception;
/**
* Get all document by array of mimetype
* @param workspace The name of workspace will be used to get documents
* @param sessionProvider
* @param mimeTypes The array of mimetype(For example: ["image/jpg", "image/png"])
* @return all documents by mime type
* @throws Exception
*/
public List<Node> getAllDocumentsByType(String workspace,
SessionProvider sessionProvider,
String[] mimeTypes) throws Exception;
/**
* Get all document type by user
* @param workspace The name of workspace will be used to get documents
* @param sessionProvider
* @param mimeTypes The array of mimetype(For example: ["image/jpg", "image/png"])
* @param userName The name of current user
* @return all documents by mime type
* @throws Exception
*/
public List<Node> getAllDocumentsByUser(String workspace,
SessionProvider sessionProvider,
String[] mimeTypes,
String userName) throws Exception;
/**
* Check the document is content type or not.
*
* @param documentType
* @return
*/
public boolean isContentsType(String documentType);
/**
* Get all contents type document
* @param documentType Contents type
* @param workspace The name of workspace will be used to get documents
* @param sessionProvider
* @param userName
* @return all contents type document
* @throws Exception
*/
public List<Node> getAllDocumentByContentsType(String documentType,
String workspace,
SessionProvider sessionProvider,
String userName) throws Exception;
/**
* Get mime types by document type
* @param documentType
* @return
*/
public String[] getMimeTypes(String documentType);
/**
* Get documentType of extension string
* @param mimeType
* @return DocumentType
*/
public DocumentType getDocumentType(String mimeType);
}