001    /**
002     * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portlet.documentlibrary.store;
016    
017    import com.liferay.portal.kernel.exception.PortalException;
018    
019    import java.io.File;
020    import java.io.InputStream;
021    
022    /**
023     * The interface for all file store implementations. Most, if not all
024     * implementations should extend from the class {@link BaseStore}.
025     *
026     * @author Brian Wing Shun Chan
027     * @author Edward Han
028     * @see    BaseStore
029     */
030    public interface Store {
031    
032            public static final String VERSION_DEFAULT = "1.0";
033    
034            public void addDirectory(long companyId, long repositoryId, String dirName);
035    
036            public void addFile(
037                            long companyId, long repositoryId, String fileName, byte[] bytes)
038                    throws PortalException;
039    
040            public void addFile(
041                            long companyId, long repositoryId, String fileName, File file)
042                    throws PortalException;
043    
044            public void addFile(
045                            long companyId, long repositoryId, String fileName, InputStream is)
046                    throws PortalException;
047    
048            public void checkRoot(long companyId);
049    
050            public void copyFileVersion(
051                            long companyId, long repositoryId, String fileName,
052                            String fromVersionLabel, String toVersionLabel)
053                    throws PortalException;
054    
055            public void deleteDirectory(
056                    long companyId, long repositoryId, String dirName);
057    
058            public void deleteFile(long companyId, long repositoryId, String fileName);
059    
060            public void deleteFile(
061                    long companyId, long repositoryId, String fileName,
062                    String versionLabel);
063    
064            public File getFile(long companyId, long repositoryId, String fileName)
065                    throws PortalException;
066    
067            public File getFile(
068                            long companyId, long repositoryId, String fileName,
069                            String versionLabel)
070                    throws PortalException;
071    
072            public byte[] getFileAsBytes(
073                            long companyId, long repositoryId, String fileName)
074                    throws PortalException;
075    
076            public byte[] getFileAsBytes(
077                            long companyId, long repositoryId, String fileName,
078                            String versionLabel)
079                    throws PortalException;
080    
081            public InputStream getFileAsStream(
082                            long companyId, long repositoryId, String fileName)
083                    throws PortalException;
084    
085            public InputStream getFileAsStream(
086                            long companyId, long repositoryId, String fileName,
087                            String versionLabel)
088                    throws PortalException;
089    
090            public String[] getFileNames(long companyId, long repositoryId);
091    
092            public String[] getFileNames(
093                    long companyId, long repositoryId, String dirName);
094    
095            public long getFileSize(long companyId, long repositoryId, String fileName)
096                    throws PortalException;
097    
098            public boolean hasDirectory(
099                    long companyId, long repositoryId, String dirName);
100    
101            public boolean hasFile(long companyId, long repositoryId, String fileName);
102    
103            public boolean hasFile(
104                    long companyId, long repositoryId, String fileName,
105                    String versionLabel);
106    
107            public void move(String srcDir, String destDir);
108    
109            public void updateFile(
110                            long companyId, long repositoryId, long newRepositoryId,
111                            String fileName)
112                    throws PortalException;
113    
114            public void updateFile(
115                            long companyId, long repositoryId, String fileName,
116                            String newFileName)
117                    throws PortalException;
118    
119            public void updateFile(
120                            long companyId, long repositoryId, String fileName,
121                            String versionLabel, byte[] bytes)
122                    throws PortalException;
123    
124            public void updateFile(
125                            long companyId, long repositoryId, String fileName,
126                            String versionLabel, File file)
127                    throws PortalException;
128    
129            public void updateFile(
130                            long companyId, long repositoryId, String fileName,
131                            String versionLabel, InputStream is)
132                    throws PortalException;
133    
134            public void updateFileVersion(
135                            long companyId, long repositoryId, String fileName,
136                            String fromVersionLabel, String toVersionLabel)
137                    throws PortalException;
138    
139    }