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.document.library.kernel.service;
016    
017    import aQute.bnd.annotation.ProviderType;
018    
019    import com.liferay.document.library.kernel.model.DLFolder;
020    
021    import com.liferay.exportimport.kernel.lar.PortletDataContext;
022    
023    import com.liferay.portal.kernel.dao.orm.ActionableDynamicQuery;
024    import com.liferay.portal.kernel.dao.orm.DynamicQuery;
025    import com.liferay.portal.kernel.dao.orm.ExportActionableDynamicQuery;
026    import com.liferay.portal.kernel.dao.orm.IndexableActionableDynamicQuery;
027    import com.liferay.portal.kernel.dao.orm.Projection;
028    import com.liferay.portal.kernel.dao.orm.QueryDefinition;
029    import com.liferay.portal.kernel.exception.PortalException;
030    import com.liferay.portal.kernel.exception.SystemException;
031    import com.liferay.portal.kernel.increment.BufferedIncrement;
032    import com.liferay.portal.kernel.lock.Lock;
033    import com.liferay.portal.kernel.model.PersistedModel;
034    import com.liferay.portal.kernel.model.SystemEventConstants;
035    import com.liferay.portal.kernel.search.Indexable;
036    import com.liferay.portal.kernel.search.IndexableType;
037    import com.liferay.portal.kernel.service.BaseLocalService;
038    import com.liferay.portal.kernel.service.PersistedModelLocalService;
039    import com.liferay.portal.kernel.service.ServiceContext;
040    import com.liferay.portal.kernel.systemevent.SystemEvent;
041    import com.liferay.portal.kernel.transaction.Isolation;
042    import com.liferay.portal.kernel.transaction.Propagation;
043    import com.liferay.portal.kernel.transaction.Transactional;
044    import com.liferay.portal.kernel.util.OrderByComparator;
045    
046    import java.io.Serializable;
047    
048    import java.util.Date;
049    import java.util.List;
050    import java.util.Map;
051    
052    /**
053     * Provides the local service interface for DLFolder. Methods of this
054     * service will not have security checks based on the propagated JAAS
055     * credentials because this service can only be accessed from within the same
056     * VM.
057     *
058     * @author Brian Wing Shun Chan
059     * @see DLFolderLocalServiceUtil
060     * @see com.liferay.portlet.documentlibrary.service.base.DLFolderLocalServiceBaseImpl
061     * @see com.liferay.portlet.documentlibrary.service.impl.DLFolderLocalServiceImpl
062     * @generated
063     */
064    @ProviderType
065    @Transactional(isolation = Isolation.PORTAL, rollbackFor =  {
066            PortalException.class, SystemException.class})
067    public interface DLFolderLocalService extends BaseLocalService,
068            PersistedModelLocalService {
069            /*
070             * NOTE FOR DEVELOPERS:
071             *
072             * Never modify or reference this interface directly. Always use {@link DLFolderLocalServiceUtil} to access the document library folder local service. Add custom service methods to {@link com.liferay.portlet.documentlibrary.service.impl.DLFolderLocalServiceImpl} and rerun ServiceBuilder to automatically copy the method declarations to this interface.
073             */
074            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
075            public boolean hasDLFileEntryTypeDLFolder(long fileEntryTypeId,
076                    long folderId);
077    
078            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
079            public boolean hasDLFileEntryTypeDLFolders(long fileEntryTypeId);
080    
081            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
082            public boolean hasFolderLock(long userId, long folderId);
083    
084            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
085            public boolean hasInheritableLock(long folderId) throws PortalException;
086    
087            public boolean verifyInheritableLock(long folderId,
088                    java.lang.String lockUuid) throws PortalException;
089    
090            /**
091            * Adds the document library folder to the database. Also notifies the appropriate model listeners.
092            *
093            * @param dlFolder the document library folder
094            * @return the document library folder that was added
095            */
096            @Indexable(type = IndexableType.REINDEX)
097            public DLFolder addDLFolder(DLFolder dlFolder);
098    
099            public DLFolder addFolder(long userId, long groupId, long repositoryId,
100                    boolean mountPoint, long parentFolderId, java.lang.String name,
101                    java.lang.String description, boolean hidden,
102                    ServiceContext serviceContext) throws PortalException;
103    
104            /**
105            * Creates a new document library folder with the primary key. Does not add the document library folder to the database.
106            *
107            * @param folderId the primary key for the new document library folder
108            * @return the new document library folder
109            */
110            public DLFolder createDLFolder(long folderId);
111    
112            /**
113            * Deletes the document library folder from the database. Also notifies the appropriate model listeners.
114            *
115            * @param dlFolder the document library folder
116            * @return the document library folder that was removed
117            */
118            @Indexable(type = IndexableType.DELETE)
119            public DLFolder deleteDLFolder(DLFolder dlFolder);
120    
121            /**
122            * Deletes the document library folder with the primary key from the database. Also notifies the appropriate model listeners.
123            *
124            * @param folderId the primary key of the document library folder
125            * @return the document library folder that was removed
126            * @throws PortalException if a document library folder with the primary key could not be found
127            */
128            @Indexable(type = IndexableType.DELETE)
129            public DLFolder deleteDLFolder(long folderId) throws PortalException;
130    
131            @Indexable(type = IndexableType.DELETE)
132            @SystemEvent(action = SystemEventConstants.ACTION_SKIP, type = SystemEventConstants.TYPE_DELETE)
133            public DLFolder deleteFolder(DLFolder dlFolder) throws PortalException;
134    
135            @Indexable(type = IndexableType.DELETE)
136            @SystemEvent(action = SystemEventConstants.ACTION_SKIP, type = SystemEventConstants.TYPE_DELETE)
137            public DLFolder deleteFolder(DLFolder dlFolder,
138                    boolean includeTrashedEntries) throws PortalException;
139    
140            @Indexable(type = IndexableType.DELETE)
141            public DLFolder deleteFolder(long folderId) throws PortalException;
142    
143            @Indexable(type = IndexableType.DELETE)
144            public DLFolder deleteFolder(long folderId, boolean includeTrashedEntries)
145                    throws PortalException;
146    
147            @Indexable(type = IndexableType.DELETE)
148            public DLFolder deleteFolder(long userId, long folderId,
149                    boolean includeTrashedEntries) throws PortalException;
150    
151            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
152            public DLFolder fetchDLFolder(long folderId);
153    
154            /**
155            * Returns the document library folder matching the UUID and group.
156            *
157            * @param uuid the document library folder's UUID
158            * @param groupId the primary key of the group
159            * @return the matching document library folder, or <code>null</code> if a matching document library folder could not be found
160            */
161            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
162            public DLFolder fetchDLFolderByUuidAndGroupId(java.lang.String uuid,
163                    long groupId);
164    
165            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
166            public DLFolder fetchFolder(long folderId);
167    
168            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
169            public DLFolder fetchFolder(long groupId, long parentFolderId,
170                    java.lang.String name);
171    
172            /**
173            * Returns the document library folder with the primary key.
174            *
175            * @param folderId the primary key of the document library folder
176            * @return the document library folder
177            * @throws PortalException if a document library folder with the primary key could not be found
178            */
179            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
180            public DLFolder getDLFolder(long folderId) throws PortalException;
181    
182            /**
183            * Returns the document library folder matching the UUID and group.
184            *
185            * @param uuid the document library folder's UUID
186            * @param groupId the primary key of the group
187            * @return the matching document library folder
188            * @throws PortalException if a matching document library folder could not be found
189            */
190            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
191            public DLFolder getDLFolderByUuidAndGroupId(java.lang.String uuid,
192                    long groupId) throws PortalException;
193    
194            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
195            public DLFolder getFolder(long folderId) throws PortalException;
196    
197            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
198            public DLFolder getFolder(long groupId, long parentFolderId,
199                    java.lang.String name) throws PortalException;
200    
201            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
202            public DLFolder getMountFolder(long repositoryId) throws PortalException;
203    
204            @Indexable(type = IndexableType.REINDEX)
205            public DLFolder moveFolder(long userId, long folderId, long parentFolderId,
206                    ServiceContext serviceContext) throws PortalException;
207    
208            /**
209            * Updates the document library folder in the database or adds it if it does not yet exist. Also notifies the appropriate model listeners.
210            *
211            * @param dlFolder the document library folder
212            * @return the document library folder that was updated
213            */
214            @Indexable(type = IndexableType.REINDEX)
215            public DLFolder updateDLFolder(DLFolder dlFolder);
216    
217            /**
218            * @deprecated As of 7.0.0, replaced {@link #updateFolder(long, long,
219            String, String, long, List, int, ServiceContext)}
220            */
221            @java.lang.Deprecated
222            public DLFolder updateFolder(long folderId, java.lang.String name,
223                    java.lang.String description, long defaultFileEntryTypeId,
224                    List<java.lang.Long> fileEntryTypeIds, boolean overrideFileEntryTypes,
225                    ServiceContext serviceContext) throws PortalException;
226    
227            @Indexable(type = IndexableType.REINDEX)
228            public DLFolder updateFolder(long folderId, java.lang.String name,
229                    java.lang.String description, long defaultFileEntryTypeId,
230                    List<java.lang.Long> fileEntryTypeIds, int restrictionType,
231                    ServiceContext serviceContext) throws PortalException;
232    
233            /**
234            * @deprecated As of 7.0.0, replaced by {@link #updateFolder(long, long,
235            String, String, long, List, int, ServiceContext)}
236            */
237            @java.lang.Deprecated
238            public DLFolder updateFolder(long folderId, long parentFolderId,
239                    java.lang.String name, java.lang.String description,
240                    long defaultFileEntryTypeId, List<java.lang.Long> fileEntryTypeIds,
241                    boolean overrideFileEntryTypes, ServiceContext serviceContext)
242                    throws PortalException;
243    
244            @Indexable(type = IndexableType.REINDEX)
245            public DLFolder updateFolder(long folderId, long parentFolderId,
246                    java.lang.String name, java.lang.String description,
247                    long defaultFileEntryTypeId, List<java.lang.Long> fileEntryTypeIds,
248                    int restrictionType, ServiceContext serviceContext)
249                    throws PortalException;
250    
251            /**
252            * @deprecated As of 7.0.0, replaced by {@link #
253            updateFolderAndFileEntryTypes(long, long, long, String,
254            String, long, List, int, ServiceContext)}
255            */
256            @java.lang.Deprecated
257            public DLFolder updateFolderAndFileEntryTypes(long userId, long folderId,
258                    long parentFolderId, java.lang.String name,
259                    java.lang.String description, long defaultFileEntryTypeId,
260                    List<java.lang.Long> fileEntryTypeIds, boolean overrideFileEntryTypes,
261                    ServiceContext serviceContext) throws PortalException;
262    
263            public DLFolder updateFolderAndFileEntryTypes(long userId, long folderId,
264                    long parentFolderId, java.lang.String name,
265                    java.lang.String description, long defaultFileEntryTypeId,
266                    List<java.lang.Long> fileEntryTypeIds, int restrictionType,
267                    ServiceContext serviceContext) throws PortalException;
268    
269            public DLFolder updateStatus(long userId, long folderId, int status,
270                    Map<java.lang.String, Serializable> workflowContext,
271                    ServiceContext serviceContext) throws PortalException;
272    
273            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
274            public ActionableDynamicQuery getActionableDynamicQuery();
275    
276            public DynamicQuery dynamicQuery();
277    
278            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
279            public ExportActionableDynamicQuery getExportActionableDynamicQuery(
280                    PortletDataContext portletDataContext);
281    
282            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
283            public IndexableActionableDynamicQuery getIndexableActionableDynamicQuery();
284    
285            public Lock lockFolder(long userId, long folderId)
286                    throws PortalException;
287    
288            public Lock lockFolder(long userId, long folderId, java.lang.String owner,
289                    boolean inheritable, long expirationTime) throws PortalException;
290    
291            /**
292            * @throws PortalException
293            */
294            @Override
295            public PersistedModel deletePersistedModel(PersistedModel persistedModel)
296                    throws PortalException;
297    
298            @Override
299            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
300            public PersistedModel getPersistedModel(Serializable primaryKeyObj)
301                    throws PortalException;
302    
303            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
304            public int getCompanyFoldersCount(long companyId);
305    
306            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
307            public int getDLFileEntryTypeDLFoldersCount(long fileEntryTypeId);
308    
309            /**
310            * Returns the number of document library folders.
311            *
312            * @return the number of document library folders
313            */
314            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
315            public int getDLFoldersCount();
316    
317            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
318            public int getFileEntriesAndFileShortcutsCount(long groupId, long folderId,
319                    QueryDefinition<?> queryDefinition);
320    
321            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
322            public int getFoldersAndFileEntriesAndFileShortcutsCount(long groupId,
323                    long folderId, java.lang.String[] mimeTypes,
324                    boolean includeMountFolders, QueryDefinition<?> queryDefinition);
325    
326            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
327            public int getFoldersCount(long groupId, long parentFolderId);
328    
329            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
330            public int getFoldersCount(long groupId, long parentFolderId,
331                    boolean includeMountfolders);
332    
333            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
334            public int getFoldersCount(long groupId, long parentFolderId, int status,
335                    boolean includeMountfolders);
336    
337            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
338            public int getMountFoldersCount(long groupId, long parentFolderId);
339    
340            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
341            public int getRepositoryFoldersCount(long repositoryId);
342    
343            /**
344            * Returns the OSGi service identifier.
345            *
346            * @return the OSGi service identifier
347            */
348            public java.lang.String getOSGiServiceIdentifier();
349    
350            /**
351            * Performs a dynamic query on the database and returns the matching rows.
352            *
353            * @param dynamicQuery the dynamic query
354            * @return the matching rows
355            */
356            public <T> List<T> dynamicQuery(DynamicQuery dynamicQuery);
357    
358            /**
359            * Performs a dynamic query on the database and returns a range of the matching rows.
360            *
361            * <p>
362            * Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full result set. If <code>orderByComparator</code> is specified, then the query will include the given ORDER BY logic. If <code>orderByComparator</code> is absent and pagination is required (<code>start</code> and <code>end</code> are not {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS}), then the query will include the default ORDER BY logic from {@link com.liferay.portlet.documentlibrary.model.impl.DLFolderModelImpl}. If both <code>orderByComparator</code> and pagination are absent, for performance reasons, the query will not have an ORDER BY clause and the returned result set will be sorted on by the primary key in an ascending order.
363            * </p>
364            *
365            * @param dynamicQuery the dynamic query
366            * @param start the lower bound of the range of model instances
367            * @param end the upper bound of the range of model instances (not inclusive)
368            * @return the range of matching rows
369            */
370            public <T> List<T> dynamicQuery(DynamicQuery dynamicQuery, int start,
371                    int end);
372    
373            /**
374            * Performs a dynamic query on the database and returns an ordered range of the matching rows.
375            *
376            * <p>
377            * Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full result set. If <code>orderByComparator</code> is specified, then the query will include the given ORDER BY logic. If <code>orderByComparator</code> is absent and pagination is required (<code>start</code> and <code>end</code> are not {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS}), then the query will include the default ORDER BY logic from {@link com.liferay.portlet.documentlibrary.model.impl.DLFolderModelImpl}. If both <code>orderByComparator</code> and pagination are absent, for performance reasons, the query will not have an ORDER BY clause and the returned result set will be sorted on by the primary key in an ascending order.
378            * </p>
379            *
380            * @param dynamicQuery the dynamic query
381            * @param start the lower bound of the range of model instances
382            * @param end the upper bound of the range of model instances (not inclusive)
383            * @param orderByComparator the comparator to order the results by (optionally <code>null</code>)
384            * @return the ordered range of matching rows
385            */
386            public <T> List<T> dynamicQuery(DynamicQuery dynamicQuery, int start,
387                    int end, OrderByComparator<T> orderByComparator);
388    
389            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
390            public List<DLFolder> getCompanyFolders(long companyId, int start, int end);
391    
392            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
393            public List<DLFolder> getDLFileEntryTypeDLFolders(long fileEntryTypeId);
394    
395            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
396            public List<DLFolder> getDLFileEntryTypeDLFolders(long fileEntryTypeId,
397                    int start, int end);
398    
399            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
400            public List<DLFolder> getDLFileEntryTypeDLFolders(long fileEntryTypeId,
401                    int start, int end, OrderByComparator<DLFolder> orderByComparator);
402    
403            /**
404            * Returns a range of all the document library folders.
405            *
406            * <p>
407            * Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full result set. If <code>orderByComparator</code> is specified, then the query will include the given ORDER BY logic. If <code>orderByComparator</code> is absent and pagination is required (<code>start</code> and <code>end</code> are not {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS}), then the query will include the default ORDER BY logic from {@link com.liferay.portlet.documentlibrary.model.impl.DLFolderModelImpl}. If both <code>orderByComparator</code> and pagination are absent, for performance reasons, the query will not have an ORDER BY clause and the returned result set will be sorted on by the primary key in an ascending order.
408            * </p>
409            *
410            * @param start the lower bound of the range of document library folders
411            * @param end the upper bound of the range of document library folders (not inclusive)
412            * @return the range of document library folders
413            */
414            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
415            public List<DLFolder> getDLFolders(int start, int end);
416    
417            /**
418            * Returns all the document library folders matching the UUID and company.
419            *
420            * @param uuid the UUID of the document library folders
421            * @param companyId the primary key of the company
422            * @return the matching document library folders, or an empty list if no matches were found
423            */
424            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
425            public List<DLFolder> getDLFoldersByUuidAndCompanyId(
426                    java.lang.String uuid, long companyId);
427    
428            /**
429            * Returns a range of document library folders matching the UUID and company.
430            *
431            * @param uuid the UUID of the document library folders
432            * @param companyId the primary key of the company
433            * @param start the lower bound of the range of document library folders
434            * @param end the upper bound of the range of document library folders (not inclusive)
435            * @param orderByComparator the comparator to order the results by (optionally <code>null</code>)
436            * @return the range of matching document library folders, or an empty list if no matches were found
437            */
438            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
439            public List<DLFolder> getDLFoldersByUuidAndCompanyId(
440                    java.lang.String uuid, long companyId, int start, int end,
441                    OrderByComparator<DLFolder> orderByComparator);
442    
443            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
444            public List<java.lang.Object> getFileEntriesAndFileShortcuts(long groupId,
445                    long folderId, QueryDefinition<?> queryDefinition);
446    
447            /**
448            * @deprecated As of 7.0.0, replaced by {@link #getGroupFolderIds(long,
449            long)}
450            */
451            @java.lang.Deprecated
452            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
453            public List<java.lang.Long> getFolderIds(long groupId, long parentFolderId);
454    
455            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
456            public List<DLFolder> getFolders(long groupId, long parentFolderId);
457    
458            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
459            public List<DLFolder> getFolders(long groupId, long parentFolderId,
460                    boolean includeMountfolders);
461    
462            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
463            public List<DLFolder> getFolders(long groupId, long parentFolderId,
464                    boolean includeMountfolders, int start, int end,
465                    OrderByComparator<DLFolder> obc);
466    
467            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
468            public List<DLFolder> getFolders(long groupId, long parentFolderId,
469                    int start, int end, OrderByComparator<DLFolder> obc);
470    
471            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
472            public List<DLFolder> getFolders(long groupId, long parentFolderId,
473                    int status, boolean includeMountfolders, int start, int end,
474                    OrderByComparator<DLFolder> obc);
475    
476            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
477            public List<java.lang.Object> getFoldersAndFileEntriesAndFileShortcuts(
478                    long groupId, long folderId, java.lang.String[] mimeTypes,
479                    boolean includeMountFolders, QueryDefinition<?> queryDefinition);
480    
481            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
482            public List<java.lang.Long> getGroupFolderIds(long groupId,
483                    long parentFolderId);
484    
485            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
486            public List<DLFolder> getMountFolders(long groupId, long parentFolderId,
487                    int start, int end, OrderByComparator<DLFolder> obc);
488    
489            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
490            public List<DLFolder> getNoAssetFolders();
491    
492            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
493            public List<java.lang.Long> getRepositoryFolderIds(long repositoryId,
494                    long parentFolderId);
495    
496            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
497            public List<DLFolder> getRepositoryFolders(long repositoryId, int start,
498                    int end);
499    
500            /**
501            * Returns the number of rows matching the dynamic query.
502            *
503            * @param dynamicQuery the dynamic query
504            * @return the number of rows matching the dynamic query
505            */
506            public long dynamicQueryCount(DynamicQuery dynamicQuery);
507    
508            /**
509            * Returns the number of rows matching the dynamic query.
510            *
511            * @param dynamicQuery the dynamic query
512            * @param projection the projection to apply to the query
513            * @return the number of rows matching the dynamic query
514            */
515            public long dynamicQueryCount(DynamicQuery dynamicQuery,
516                    Projection projection);
517    
518            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
519            public long getFolderId(long companyId, long folderId);
520    
521            /**
522            * Returns the fileEntryTypeIds of the document library file entry types associated with the document library folder.
523            *
524            * @param folderId the folderId of the document library folder
525            * @return long[] the fileEntryTypeIds of document library file entry types associated with the document library folder
526            */
527            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
528            public long[] getDLFileEntryTypePrimaryKeys(long folderId);
529    
530            public void addDLFileEntryTypeDLFolder(long fileEntryTypeId,
531                    DLFolder dlFolder);
532    
533            public void addDLFileEntryTypeDLFolder(long fileEntryTypeId, long folderId);
534    
535            public void addDLFileEntryTypeDLFolders(long fileEntryTypeId,
536                    List<DLFolder> dlFolders);
537    
538            public void addDLFileEntryTypeDLFolders(long fileEntryTypeId,
539                    long[] folderIds);
540    
541            public void clearDLFileEntryTypeDLFolders(long fileEntryTypeId);
542    
543            /**
544            * @deprecated As of 7.0.0, replaced by {@link #deleteAllByGroup(long)}
545            */
546            @java.lang.Deprecated
547            public void deleteAll(long groupId) throws PortalException;
548    
549            public void deleteAllByGroup(long groupId) throws PortalException;
550    
551            public void deleteAllByRepository(long repositoryId)
552                    throws PortalException;
553    
554            public void deleteDLFileEntryTypeDLFolder(long fileEntryTypeId,
555                    DLFolder dlFolder);
556    
557            public void deleteDLFileEntryTypeDLFolder(long fileEntryTypeId,
558                    long folderId);
559    
560            public void deleteDLFileEntryTypeDLFolders(long fileEntryTypeId,
561                    List<DLFolder> dlFolders);
562    
563            public void deleteDLFileEntryTypeDLFolders(long fileEntryTypeId,
564                    long[] folderIds);
565    
566            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
567            public void getGroupSubfolderIds(List<java.lang.Long> folderIds,
568                    long groupId, long folderId);
569    
570            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
571            public void getRepositorySubfolderIds(List<java.lang.Long> folderIds,
572                    long repositoryId, long folderId);
573    
574            /**
575            * @deprecated As of 7.0.0, replaced by {@link #getGroupSubfolderIds(List,
576            long, long)}
577            */
578            @java.lang.Deprecated
579            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
580            public void getSubfolderIds(List<java.lang.Long> folderIds, long groupId,
581                    long folderId);
582    
583            public void rebuildTree(long companyId) throws PortalException;
584    
585            public void rebuildTree(long companyId, long parentFolderId,
586                    java.lang.String parentTreePath, boolean reindex)
587                    throws PortalException;
588    
589            public void setDLFileEntryTypeDLFolders(long fileEntryTypeId,
590                    long[] folderIds);
591    
592            public void unlockFolder(long folderId, java.lang.String lockUuid)
593                    throws PortalException;
594    
595            public void unlockFolder(long groupId, long parentFolderId,
596                    java.lang.String name, java.lang.String lockUuid)
597                    throws PortalException;
598    
599            @BufferedIncrement(configuration = "DLFolderEntry", incrementClass = com.liferay.portal.kernel.increment.DateOverrideIncrement.class)
600            public void updateLastPostDate(long folderId, Date lastPostDate)
601                    throws PortalException;
602    }