View Javadoc
1   package org.exoplatform.services.cms.documents;
2   
3   import javax.jcr.Node;
4   import javax.jcr.version.Version;
5   
6   import java.util.List;
7   
8   /**
9    * Created by The eXo Platform SEA
10   * Author : eXoPlatform
11   * toannh@exoplatform.com
12   * On 8/13/15
13   * #comments here
14   */
15  public interface AutoVersionService {
16  
17    public final String DRIVES_AUTO_VERSION = "ecms.documents.versioning.drives";
18    public final String DRIVES_AUTO_VERSION_MAX = "ecms.documents.versions.max";
19    public final String DRIVES_AUTO_VERSION_EXPIRED = "ecms.documents.versions.expiration";
20    public final int DOCUMENT_AUTO_DEFAULT_VERSION_MAX=0;
21    public final int DOCUMENT_AUTO_DEFAULT_VERSION_EXPIRED=0;
22  
23    public final String PERSONAL_DRIVE_PARRTEN = "/Users/${userId}/Private";
24    public final String GROUP_DRIVE_PARRTEN = "/Groups${groupId}/Documents";
25  
26    public final String PERSONAL_DRIVE_PREFIX = "/Users";
27    public final String GROUP_DRIVE_PREFIX = "/Groups";
28  
29    /**
30     * Versioning for document
31     * @param currentNode
32     * @return created version
33     * @throws Exception
34     */
35    public Version autoVersion(Node currentNode) throws Exception;
36  
37    /**
38     * Versioning for document
39     * @param currentNode
40     * @param isSkipCheckDrive
41     * @return created version
42     * @throws Exception
43     */
44    Version autoVersion(Node currentNode, boolean isSkipCheckDrive) throws Exception;
45    
46    /**
47     *  Versioning for document
48     * @param currentNode
49     * @param sourceNode
50     * @throws Exception
51     */
52    public void autoVersion(Node currentNode, Node sourceNode) throws Exception;
53  
54    /**
55     * Check support versioning of document
56     * @param nodePath
57     * @return
58     * @throws Exception
59     */
60    public boolean isVersionSupport(String nodePath, String workspace) throws Exception;
61  
62     /**
63      * Get List of Drive supported versioning
64      * @return List of Drive supported versioning
65      */
66    public List<String> getDriveAutoVersion();
67  
68    /**
69     *  Versioning for document at Drive dont support Autoversioning
70     * @param currentNode
71     * @param sourceNode
72     * @param isSkipDriveCheck
73     * @throws Exception
74     */
75    void autoVersion(Node currentNode, Node sourceNode, boolean isSkipDriveCheck) throws Exception;
76  }