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.asset.service;
016    
017    import aQute.bnd.annotation.ProviderType;
018    
019    import com.liferay.portal.kernel.exception.PortalException;
020    import com.liferay.portal.kernel.exception.SystemException;
021    import com.liferay.portal.kernel.search.IndexableType;
022    import com.liferay.portal.kernel.transaction.Isolation;
023    import com.liferay.portal.kernel.transaction.Propagation;
024    import com.liferay.portal.kernel.transaction.Transactional;
025    import com.liferay.portal.model.SystemEventConstants;
026    import com.liferay.portal.service.BaseLocalService;
027    import com.liferay.portal.service.PersistedModelLocalService;
028    
029    /**
030     * Provides the local service interface for AssetCategory. Methods of this
031     * service will not have security checks based on the propagated JAAS
032     * credentials because this service can only be accessed from within the same
033     * VM.
034     *
035     * @author Brian Wing Shun Chan
036     * @see AssetCategoryLocalServiceUtil
037     * @see com.liferay.portlet.asset.service.base.AssetCategoryLocalServiceBaseImpl
038     * @see com.liferay.portlet.asset.service.impl.AssetCategoryLocalServiceImpl
039     * @generated
040     */
041    @ProviderType
042    @Transactional(isolation = Isolation.PORTAL, rollbackFor =  {
043            PortalException.class, SystemException.class})
044    public interface AssetCategoryLocalService extends BaseLocalService,
045            PersistedModelLocalService {
046            /*
047             * NOTE FOR DEVELOPERS:
048             *
049             * Never modify or reference this interface directly. Always use {@link AssetCategoryLocalServiceUtil} to access the asset category local service. Add custom service methods to {@link com.liferay.portlet.asset.service.impl.AssetCategoryLocalServiceImpl} and rerun ServiceBuilder to automatically copy the method declarations to this interface.
050             */
051    
052            /**
053            * Adds the asset category to the database. Also notifies the appropriate model listeners.
054            *
055            * @param assetCategory the asset category
056            * @return the asset category that was added
057            */
058            @com.liferay.portal.kernel.search.Indexable(type = IndexableType.REINDEX)
059            public com.liferay.portlet.asset.model.AssetCategory addAssetCategory(
060                    com.liferay.portlet.asset.model.AssetCategory assetCategory);
061    
062            public void addAssetEntryAssetCategories(long entryId,
063                    java.util.List<com.liferay.portlet.asset.model.AssetCategory> AssetCategories);
064    
065            public void addAssetEntryAssetCategories(long entryId, long[] categoryIds);
066    
067            public void addAssetEntryAssetCategory(long entryId,
068                    com.liferay.portlet.asset.model.AssetCategory assetCategory);
069    
070            public void addAssetEntryAssetCategory(long entryId, long categoryId);
071    
072            @com.liferay.portal.kernel.search.Indexable(type = IndexableType.REINDEX)
073            public com.liferay.portlet.asset.model.AssetCategory addCategory(
074                    long userId, long groupId, long parentCategoryId,
075                    java.util.Map<java.util.Locale, java.lang.String> titleMap,
076                    java.util.Map<java.util.Locale, java.lang.String> descriptionMap,
077                    long vocabularyId, java.lang.String[] categoryProperties,
078                    com.liferay.portal.service.ServiceContext serviceContext)
079                    throws PortalException;
080    
081            public com.liferay.portlet.asset.model.AssetCategory addCategory(
082                    long userId, long groupId, java.lang.String title, long vocabularyId,
083                    com.liferay.portal.service.ServiceContext serviceContext)
084                    throws PortalException;
085    
086            public void addCategoryResources(
087                    com.liferay.portlet.asset.model.AssetCategory category,
088                    boolean addGroupPermissions, boolean addGuestPermissions)
089                    throws PortalException;
090    
091            public void addCategoryResources(
092                    com.liferay.portlet.asset.model.AssetCategory category,
093                    com.liferay.portal.service.permission.ModelPermissions modelPermissions)
094                    throws PortalException;
095    
096            public void clearAssetEntryAssetCategories(long entryId);
097    
098            /**
099            * Creates a new asset category with the primary key. Does not add the asset category to the database.
100            *
101            * @param categoryId the primary key for the new asset category
102            * @return the new asset category
103            */
104            public com.liferay.portlet.asset.model.AssetCategory createAssetCategory(
105                    long categoryId);
106    
107            /**
108            * Deletes the asset category from the database. Also notifies the appropriate model listeners.
109            *
110            * @param assetCategory the asset category
111            * @return the asset category that was removed
112            */
113            @com.liferay.portal.kernel.search.Indexable(type = IndexableType.DELETE)
114            public com.liferay.portlet.asset.model.AssetCategory deleteAssetCategory(
115                    com.liferay.portlet.asset.model.AssetCategory assetCategory);
116    
117            /**
118            * Deletes the asset category with the primary key from the database. Also notifies the appropriate model listeners.
119            *
120            * @param categoryId the primary key of the asset category
121            * @return the asset category that was removed
122            * @throws PortalException if a asset category with the primary key could not be found
123            */
124            @com.liferay.portal.kernel.search.Indexable(type = IndexableType.DELETE)
125            public com.liferay.portlet.asset.model.AssetCategory deleteAssetCategory(
126                    long categoryId) throws PortalException;
127    
128            public void deleteAssetEntryAssetCategories(long entryId,
129                    java.util.List<com.liferay.portlet.asset.model.AssetCategory> AssetCategories);
130    
131            public void deleteAssetEntryAssetCategories(long entryId, long[] categoryIds);
132    
133            public void deleteAssetEntryAssetCategory(long entryId,
134                    com.liferay.portlet.asset.model.AssetCategory assetCategory);
135    
136            public void deleteAssetEntryAssetCategory(long entryId, long categoryId);
137    
138            public void deleteCategories(
139                    java.util.List<com.liferay.portlet.asset.model.AssetCategory> categories)
140                    throws PortalException;
141    
142            public void deleteCategories(long[] categoryIds) throws PortalException;
143    
144            public com.liferay.portlet.asset.model.AssetCategory deleteCategory(
145                    com.liferay.portlet.asset.model.AssetCategory category)
146                    throws PortalException;
147    
148            @com.liferay.portal.kernel.search.Indexable(type = IndexableType.DELETE)
149            @com.liferay.portal.kernel.systemevent.SystemEvent(type = SystemEventConstants.TYPE_DELETE)
150            public com.liferay.portlet.asset.model.AssetCategory deleteCategory(
151                    com.liferay.portlet.asset.model.AssetCategory category,
152                    boolean skipRebuildTree) throws PortalException;
153    
154            public com.liferay.portlet.asset.model.AssetCategory deleteCategory(
155                    long categoryId) throws PortalException;
156    
157            /**
158            * @throws PortalException
159            */
160            @Override
161            public com.liferay.portal.model.PersistedModel deletePersistedModel(
162                    com.liferay.portal.model.PersistedModel persistedModel)
163                    throws PortalException;
164    
165            public void deleteVocabularyCategories(long vocabularyId)
166                    throws PortalException;
167    
168            public com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery();
169    
170            /**
171            * Performs a dynamic query on the database and returns the matching rows.
172            *
173            * @param dynamicQuery the dynamic query
174            * @return the matching rows
175            */
176            public <T> java.util.List<T> dynamicQuery(
177                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery);
178    
179            /**
180            * Performs a dynamic query on the database and returns a range of the matching rows.
181            *
182            * <p>
183            * 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.asset.model.impl.AssetCategoryModelImpl}. 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.
184            * </p>
185            *
186            * @param dynamicQuery the dynamic query
187            * @param start the lower bound of the range of model instances
188            * @param end the upper bound of the range of model instances (not inclusive)
189            * @return the range of matching rows
190            */
191            public <T> java.util.List<T> dynamicQuery(
192                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery, int start,
193                    int end);
194    
195            /**
196            * Performs a dynamic query on the database and returns an ordered range of the matching rows.
197            *
198            * <p>
199            * 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.asset.model.impl.AssetCategoryModelImpl}. 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.
200            * </p>
201            *
202            * @param dynamicQuery the dynamic query
203            * @param start the lower bound of the range of model instances
204            * @param end the upper bound of the range of model instances (not inclusive)
205            * @param orderByComparator the comparator to order the results by (optionally <code>null</code>)
206            * @return the ordered range of matching rows
207            */
208            public <T> java.util.List<T> dynamicQuery(
209                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery, int start,
210                    int end,
211                    com.liferay.portal.kernel.util.OrderByComparator<T> orderByComparator);
212    
213            /**
214            * Returns the number of rows matching the dynamic query.
215            *
216            * @param dynamicQuery the dynamic query
217            * @return the number of rows matching the dynamic query
218            */
219            public long dynamicQueryCount(
220                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery);
221    
222            /**
223            * Returns the number of rows matching the dynamic query.
224            *
225            * @param dynamicQuery the dynamic query
226            * @param projection the projection to apply to the query
227            * @return the number of rows matching the dynamic query
228            */
229            public long dynamicQueryCount(
230                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery,
231                    com.liferay.portal.kernel.dao.orm.Projection projection);
232    
233            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
234            public com.liferay.portlet.asset.model.AssetCategory fetchAssetCategory(
235                    long categoryId);
236    
237            /**
238            * Returns the asset category matching the UUID and group.
239            *
240            * @param uuid the asset category's UUID
241            * @param groupId the primary key of the group
242            * @return the matching asset category, or <code>null</code> if a matching asset category could not be found
243            */
244            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
245            public com.liferay.portlet.asset.model.AssetCategory fetchAssetCategoryByUuidAndGroupId(
246                    java.lang.String uuid, long groupId);
247    
248            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
249            public com.liferay.portlet.asset.model.AssetCategory fetchCategory(
250                    long categoryId);
251    
252            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
253            public com.liferay.portal.kernel.dao.orm.ActionableDynamicQuery getActionableDynamicQuery();
254    
255            /**
256            * Returns a range of all the asset categories.
257            *
258            * <p>
259            * 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.asset.model.impl.AssetCategoryModelImpl}. 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.
260            * </p>
261            *
262            * @param start the lower bound of the range of asset categories
263            * @param end the upper bound of the range of asset categories (not inclusive)
264            * @return the range of asset categories
265            */
266            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
267            public java.util.List<com.liferay.portlet.asset.model.AssetCategory> getAssetCategories(
268                    int start, int end);
269    
270            /**
271            * Returns all the asset categories matching the UUID and company.
272            *
273            * @param uuid the UUID of the asset categories
274            * @param companyId the primary key of the company
275            * @return the matching asset categories, or an empty list if no matches were found
276            */
277            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
278            public java.util.List<com.liferay.portlet.asset.model.AssetCategory> getAssetCategoriesByUuidAndCompanyId(
279                    java.lang.String uuid, long companyId);
280    
281            /**
282            * Returns a range of asset categories matching the UUID and company.
283            *
284            * @param uuid the UUID of the asset categories
285            * @param companyId the primary key of the company
286            * @param start the lower bound of the range of asset categories
287            * @param end the upper bound of the range of asset categories (not inclusive)
288            * @param orderByComparator the comparator to order the results by (optionally <code>null</code>)
289            * @return the range of matching asset categories, or an empty list if no matches were found
290            */
291            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
292            public java.util.List<com.liferay.portlet.asset.model.AssetCategory> getAssetCategoriesByUuidAndCompanyId(
293                    java.lang.String uuid, long companyId, int start, int end,
294                    com.liferay.portal.kernel.util.OrderByComparator<com.liferay.portlet.asset.model.AssetCategory> orderByComparator);
295    
296            /**
297            * Returns the number of asset categories.
298            *
299            * @return the number of asset categories
300            */
301            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
302            public int getAssetCategoriesCount();
303    
304            /**
305            * Returns the asset category with the primary key.
306            *
307            * @param categoryId the primary key of the asset category
308            * @return the asset category
309            * @throws PortalException if a asset category with the primary key could not be found
310            */
311            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
312            public com.liferay.portlet.asset.model.AssetCategory getAssetCategory(
313                    long categoryId) throws PortalException;
314    
315            /**
316            * Returns the asset category matching the UUID and group.
317            *
318            * @param uuid the asset category's UUID
319            * @param groupId the primary key of the group
320            * @return the matching asset category
321            * @throws PortalException if a matching asset category could not be found
322            */
323            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
324            public com.liferay.portlet.asset.model.AssetCategory getAssetCategoryByUuidAndGroupId(
325                    java.lang.String uuid, long groupId) throws PortalException;
326    
327            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
328            public java.util.List<com.liferay.portlet.asset.model.AssetCategory> getAssetEntryAssetCategories(
329                    long entryId);
330    
331            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
332            public java.util.List<com.liferay.portlet.asset.model.AssetCategory> getAssetEntryAssetCategories(
333                    long entryId, int start, int end);
334    
335            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
336            public java.util.List<com.liferay.portlet.asset.model.AssetCategory> getAssetEntryAssetCategories(
337                    long entryId, int start, int end,
338                    com.liferay.portal.kernel.util.OrderByComparator<com.liferay.portlet.asset.model.AssetCategory> orderByComparator);
339    
340            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
341            public int getAssetEntryAssetCategoriesCount(long entryId);
342    
343            /**
344            * Returns the entryIds of the asset entries associated with the asset category.
345            *
346            * @param categoryId the categoryId of the asset category
347            * @return long[] the entryIds of asset entries associated with the asset category
348            */
349            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
350            public long[] getAssetEntryPrimaryKeys(long categoryId);
351    
352            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
353            public java.util.List<com.liferay.portlet.asset.model.AssetCategory> getCategories();
354    
355            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
356            public java.util.List<com.liferay.portlet.asset.model.AssetCategory> getCategories(
357                    java.lang.String className, long classPK);
358    
359            @com.liferay.portal.kernel.cache.thread.local.ThreadLocalCachable
360            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
361            public java.util.List<com.liferay.portlet.asset.model.AssetCategory> getCategories(
362                    long classNameId, long classPK);
363    
364            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
365            public java.util.List<com.liferay.portlet.asset.model.AssetCategory> getCategories(
366                    com.liferay.portal.kernel.search.Hits hits) throws PortalException;
367    
368            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
369            public com.liferay.portlet.asset.model.AssetCategory getCategory(
370                    long categoryId) throws PortalException;
371    
372            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
373            public com.liferay.portlet.asset.model.AssetCategory getCategory(
374                    java.lang.String uuid, long groupId) throws PortalException;
375    
376            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
377            public long[] getCategoryIds(java.lang.String className, long classPK);
378    
379            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
380            public java.lang.String[] getCategoryNames();
381    
382            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
383            public java.lang.String[] getCategoryNames(java.lang.String className,
384                    long classPK);
385    
386            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
387            public java.lang.String[] getCategoryNames(long classNameId, long classPK);
388    
389            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
390            public java.util.List<com.liferay.portlet.asset.model.AssetCategory> getChildCategories(
391                    long parentCategoryId);
392    
393            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
394            public java.util.List<com.liferay.portlet.asset.model.AssetCategory> getChildCategories(
395                    long parentCategoryId, int start, int end,
396                    com.liferay.portal.kernel.util.OrderByComparator<com.liferay.portlet.asset.model.AssetCategory> obc);
397    
398            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
399            public int getChildCategoriesCount(long parentCategoryId);
400    
401            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
402            public java.util.List<com.liferay.portlet.asset.model.AssetCategory> getEntryCategories(
403                    long entryId);
404    
405            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
406            public com.liferay.portal.kernel.dao.orm.ExportActionableDynamicQuery getExportActionableDynamicQuery(
407                    com.liferay.portlet.exportimport.lar.PortletDataContext portletDataContext);
408    
409            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
410            public com.liferay.portal.kernel.dao.orm.IndexableActionableDynamicQuery getIndexableActionableDynamicQuery();
411    
412            /**
413            * Returns the OSGi service identifier.
414            *
415            * @return the OSGi service identifier
416            */
417            public java.lang.String getOSGiServiceIdentifier();
418    
419            @Override
420            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
421            public com.liferay.portal.model.PersistedModel getPersistedModel(
422                    java.io.Serializable primaryKeyObj) throws PortalException;
423    
424            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
425            public java.util.List<java.lang.Long> getSubcategoryIds(
426                    long parentCategoryId);
427    
428            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
429            public java.util.List<com.liferay.portlet.asset.model.AssetCategory> getVocabularyCategories(
430                    long parentCategoryId, long vocabularyId, int start, int end,
431                    com.liferay.portal.kernel.util.OrderByComparator<com.liferay.portlet.asset.model.AssetCategory> obc);
432    
433            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
434            public java.util.List<com.liferay.portlet.asset.model.AssetCategory> getVocabularyCategories(
435                    long vocabularyId, int start, int end,
436                    com.liferay.portal.kernel.util.OrderByComparator<com.liferay.portlet.asset.model.AssetCategory> obc);
437    
438            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
439            public int getVocabularyCategoriesCount(long vocabularyId);
440    
441            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
442            public java.util.List<com.liferay.portlet.asset.model.AssetCategory> getVocabularyRootCategories(
443                    long vocabularyId, int start, int end,
444                    com.liferay.portal.kernel.util.OrderByComparator<com.liferay.portlet.asset.model.AssetCategory> obc);
445    
446            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
447            public int getVocabularyRootCategoriesCount(long vocabularyId);
448    
449            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
450            public boolean hasAssetEntryAssetCategories(long entryId);
451    
452            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
453            public boolean hasAssetEntryAssetCategory(long entryId, long categoryId);
454    
455            @com.liferay.portal.kernel.search.Indexable(type = IndexableType.REINDEX)
456            public com.liferay.portlet.asset.model.AssetCategory mergeCategories(
457                    long fromCategoryId, long toCategoryId) throws PortalException;
458    
459            @com.liferay.portal.kernel.search.Indexable(type = IndexableType.REINDEX)
460            public com.liferay.portlet.asset.model.AssetCategory moveCategory(
461                    long categoryId, long parentCategoryId, long vocabularyId,
462                    com.liferay.portal.service.ServiceContext serviceContext)
463                    throws PortalException;
464    
465            public void rebuildTree(long groupId, boolean force);
466    
467            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
468            public java.util.List<com.liferay.portlet.asset.model.AssetCategory> search(
469                    long groupId, java.lang.String name,
470                    java.lang.String[] categoryProperties, int start, int end);
471    
472            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
473            public com.liferay.portal.kernel.search.BaseModelSearchResult<com.liferay.portlet.asset.model.AssetCategory> searchCategories(
474                    long companyId, long[] groupIds, java.lang.String title,
475                    long[] parentCategoryIds, long[] vocabularyIds, int start, int end)
476                    throws PortalException;
477    
478            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
479            public com.liferay.portal.kernel.search.BaseModelSearchResult<com.liferay.portlet.asset.model.AssetCategory> searchCategories(
480                    long companyId, long groupIds, java.lang.String title,
481                    long vocabularyId, int start, int end) throws PortalException;
482    
483            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
484            public com.liferay.portal.kernel.search.BaseModelSearchResult<com.liferay.portlet.asset.model.AssetCategory> searchCategories(
485                    long companyId, long[] groupIds, java.lang.String title,
486                    long[] vocabularyIds, long[] parentCategoryIds, int start, int end,
487                    com.liferay.portal.kernel.search.Sort sort) throws PortalException;
488    
489            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
490            public com.liferay.portal.kernel.search.BaseModelSearchResult<com.liferay.portlet.asset.model.AssetCategory> searchCategories(
491                    long companyId, long[] groupIds, java.lang.String title,
492                    long[] vocabularyIds, int start, int end) throws PortalException;
493    
494            public void setAssetEntryAssetCategories(long entryId, long[] categoryIds);
495    
496            /**
497            * Updates the asset category in the database or adds it if it does not yet exist. Also notifies the appropriate model listeners.
498            *
499            * @param assetCategory the asset category
500            * @return the asset category that was updated
501            */
502            @com.liferay.portal.kernel.search.Indexable(type = IndexableType.REINDEX)
503            public com.liferay.portlet.asset.model.AssetCategory updateAssetCategory(
504                    com.liferay.portlet.asset.model.AssetCategory assetCategory);
505    
506            @com.liferay.portal.kernel.search.Indexable(type = IndexableType.REINDEX)
507            public com.liferay.portlet.asset.model.AssetCategory updateCategory(
508                    long userId, long categoryId, long parentCategoryId,
509                    java.util.Map<java.util.Locale, java.lang.String> titleMap,
510                    java.util.Map<java.util.Locale, java.lang.String> descriptionMap,
511                    long vocabularyId, java.lang.String[] categoryProperties,
512                    com.liferay.portal.service.ServiceContext serviceContext)
513                    throws PortalException;
514    }