1
22
23 package com.liferay.documentlibrary.util;
24
25 import com.liferay.documentlibrary.NoSuchFileException;
26 import com.liferay.portal.PortalException;
27 import com.liferay.portal.SystemException;
28 import com.liferay.portal.kernel.log.Log;
29 import com.liferay.portal.kernel.log.LogFactoryUtil;
30 import com.liferay.portal.kernel.search.SearchException;
31 import com.liferay.portal.kernel.util.FileUtil;
32
33 import java.io.BufferedInputStream;
34 import java.io.ByteArrayInputStream;
35 import java.io.File;
36 import java.io.FileInputStream;
37 import java.io.FileNotFoundException;
38 import java.io.IOException;
39 import java.io.InputStream;
40
41 import java.util.Date;
42
43
50 public abstract class BaseHook implements Hook {
51
52 public abstract void addDirectory(
53 long companyId, long repositoryId, String dirName)
54 throws PortalException, SystemException;
55
56 public void addFile(
57 long companyId, String portletId, long groupId, long repositoryId,
58 String fileName, String properties, Date modifiedDate,
59 String[] tagsEntries, byte[] bytes)
60 throws PortalException, SystemException {
61
62 InputStream is = new ByteArrayInputStream(bytes);
63
64 try {
65 addFile(
66 companyId, portletId, groupId, repositoryId, fileName,
67 properties, modifiedDate, tagsEntries, is);
68 }
69 finally {
70 try {
71 is.close();
72 }
73 catch (IOException ioe) {
74 _log.error(ioe);
75 }
76 }
77 }
78
79 public void addFile(
80 long companyId, String portletId, long groupId, long repositoryId,
81 String fileName, String properties, Date modifiedDate,
82 String[] tagsEntries, File file)
83 throws PortalException, SystemException {
84
85 InputStream is = null;
86
87 try {
88 is = new BufferedInputStream(new FileInputStream(file));
89
90 addFile(
91 companyId, portletId, groupId, repositoryId, fileName,
92 properties, modifiedDate, tagsEntries, is);
93 }
94 catch (FileNotFoundException fnfe) {
95 throw new NoSuchFileException(fileName);
96 }
97 finally {
98 try {
99 if (is != null) {
100 is.close();
101 }
102 }
103 catch (IOException ioe) {
104 _log.error(ioe);
105 }
106 }
107 }
108
109 public abstract void addFile(
110 long companyId, String portletId, long groupId, long repositoryId,
111 String fileName, String properties, Date modifiedDate,
112 String[] tagsEntries, InputStream is)
113 throws PortalException, SystemException;
114
115 public abstract void checkRoot(long companyId) throws SystemException;
116
117 public abstract void deleteDirectory(
118 long companyId, String portletId, long repositoryId, String dirName)
119 throws PortalException, SystemException;
120
121 public abstract void deleteFile(
122 long companyId, String portletId, long repositoryId,
123 String fileName)
124 throws PortalException, SystemException;
125
126 public abstract void deleteFile(
127 long companyId, String portletId, long repositoryId,
128 String fileName, double versionNumber)
129 throws PortalException, SystemException;
130
131 public byte[] getFile(long companyId, long repositoryId, String fileName)
132 throws PortalException, SystemException {
133
134 byte[] bytes = null;
135
136 try {
137 InputStream is = getFileAsStream(companyId, repositoryId, fileName);
138
139 bytes = FileUtil.getBytes(is);
140 }
141 catch (IOException ioe) {
142 throw new SystemException(ioe);
143 }
144
145 return bytes;
146 }
147
148 public byte[] getFile(
149 long companyId, long repositoryId, String fileName,
150 double versionNumber)
151 throws PortalException, SystemException {
152
153 byte[] bytes = null;
154
155 try {
156 InputStream is = getFileAsStream(
157 companyId, repositoryId, fileName, versionNumber);
158
159 bytes = FileUtil.getBytes(is);
160 }
161 catch (IOException ioe) {
162 throw new SystemException(ioe);
163 }
164
165 return bytes;
166 }
167
168 public InputStream getFileAsStream(
169 long companyId, long repositoryId, String fileName)
170 throws PortalException, SystemException {
171
172 return getFileAsStream(companyId, repositoryId, fileName, 0);
173 }
174
175 public abstract InputStream getFileAsStream(
176 long companyId, long repositoryId, String fileName,
177 double versionNumber)
178 throws PortalException, SystemException;
179
180 public abstract String[] getFileNames(
181 long companyId, long repositoryId, String dirName)
182 throws PortalException, SystemException;
183
184 public abstract long getFileSize(
185 long companyId, long repositoryId, String fileName)
186 throws PortalException, SystemException;
187
188 public abstract boolean hasFile(
189 long companyId, long repositoryId, String fileName,
190 double versionNumber)
191 throws PortalException, SystemException;
192
193 public abstract void move(String srcDir, String destDir)
194 throws SystemException;
195
196 public abstract void reIndex(String[] ids) throws SearchException;
197
198 public void updateFile(
199 long companyId, String portletId, long groupId, long repositoryId,
200 String fileName, double versionNumber, String sourceFileName,
201 String properties, Date modifiedDate, String[] tagsEntries,
202 byte[] bytes)
203 throws PortalException, SystemException {
204
205 InputStream is = new ByteArrayInputStream(bytes);
206
207 try {
208 updateFile(
209 companyId, portletId, groupId, repositoryId, fileName,
210 versionNumber, sourceFileName, properties, modifiedDate,
211 tagsEntries, is);
212 }
213 finally {
214 try {
215 is.close();
216 }
217 catch (IOException ioe) {
218 _log.error(ioe);
219 }
220 }
221 }
222
223 public void updateFile(
224 long companyId, String portletId, long groupId, long repositoryId,
225 String fileName, double versionNumber, String sourceFileName,
226 String properties, Date modifiedDate, String[] tagsEntries,
227 File file)
228 throws PortalException, SystemException {
229
230 InputStream is = null;
231
232 try {
233 is = new BufferedInputStream(new FileInputStream(file));
234
235 updateFile(
236 companyId, portletId, groupId, repositoryId, fileName,
237 versionNumber, sourceFileName, properties, modifiedDate,
238 tagsEntries, is);
239 }
240 catch (FileNotFoundException fnfe) {
241 throw new NoSuchFileException(fileName);
242 }
243 finally {
244 try {
245 if (is != null) {
246 is.close();
247 }
248 }
249 catch (IOException ioe) {
250 _log.error(ioe);
251 }
252 }
253 }
254
255 public abstract void updateFile(
256 long companyId, String portletId, long groupId, long repositoryId,
257 String fileName, double versionNumber, String sourceFileName,
258 String properties, Date modifiedDate, String[] tagsEntries,
259 InputStream is)
260 throws PortalException, SystemException;
261
262 public abstract void updateFile(
263 long companyId, String portletId, long groupId, long repositoryId,
264 long newRepositoryId, String fileName)
265 throws PortalException, SystemException;
266
267 private static Log _log = LogFactoryUtil.getLog(BaseHook.class);
268
269 }