001    /**
002     * Copyright (c) 2000-2013 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.transaction.Isolation;
022    import com.liferay.portal.kernel.transaction.Propagation;
023    import com.liferay.portal.kernel.transaction.Transactional;
024    import com.liferay.portal.service.BaseLocalService;
025    import com.liferay.portal.service.PersistedModelLocalService;
026    
027    /**
028     * Provides the local service interface for AssetLink. Methods of this
029     * service will not have security checks based on the propagated JAAS
030     * credentials because this service can only be accessed from within the same
031     * VM.
032     *
033     * @author Brian Wing Shun Chan
034     * @see AssetLinkLocalServiceUtil
035     * @see com.liferay.portlet.asset.service.base.AssetLinkLocalServiceBaseImpl
036     * @see com.liferay.portlet.asset.service.impl.AssetLinkLocalServiceImpl
037     * @generated
038     */
039    @ProviderType
040    @Transactional(isolation = Isolation.PORTAL, rollbackFor =  {
041            PortalException.class, SystemException.class})
042    public interface AssetLinkLocalService extends BaseLocalService,
043            PersistedModelLocalService {
044            /*
045             * NOTE FOR DEVELOPERS:
046             *
047             * Never modify or reference this interface directly. Always use {@link AssetLinkLocalServiceUtil} to access the asset link local service. Add custom service methods to {@link com.liferay.portlet.asset.service.impl.AssetLinkLocalServiceImpl} and rerun ServiceBuilder to automatically copy the method declarations to this interface.
048             */
049    
050            /**
051            * Adds the asset link to the database. Also notifies the appropriate model listeners.
052            *
053            * @param assetLink the asset link
054            * @return the asset link that was added
055            * @throws SystemException if a system exception occurred
056            */
057            public com.liferay.portlet.asset.model.AssetLink addAssetLink(
058                    com.liferay.portlet.asset.model.AssetLink assetLink)
059                    throws com.liferay.portal.kernel.exception.SystemException;
060    
061            /**
062            * Creates a new asset link with the primary key. Does not add the asset link to the database.
063            *
064            * @param linkId the primary key for the new asset link
065            * @return the new asset link
066            */
067            public com.liferay.portlet.asset.model.AssetLink createAssetLink(
068                    long linkId);
069    
070            /**
071            * Deletes the asset link with the primary key from the database. Also notifies the appropriate model listeners.
072            *
073            * @param linkId the primary key of the asset link
074            * @return the asset link that was removed
075            * @throws PortalException if a asset link with the primary key could not be found
076            * @throws SystemException if a system exception occurred
077            */
078            public com.liferay.portlet.asset.model.AssetLink deleteAssetLink(
079                    long linkId)
080                    throws com.liferay.portal.kernel.exception.PortalException,
081                            com.liferay.portal.kernel.exception.SystemException;
082    
083            /**
084            * Deletes the asset link from the database. Also notifies the appropriate model listeners.
085            *
086            * @param assetLink the asset link
087            * @return the asset link that was removed
088            * @throws SystemException if a system exception occurred
089            */
090            public com.liferay.portlet.asset.model.AssetLink deleteAssetLink(
091                    com.liferay.portlet.asset.model.AssetLink assetLink)
092                    throws com.liferay.portal.kernel.exception.SystemException;
093    
094            public com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery();
095    
096            /**
097            * Performs a dynamic query on the database and returns the matching rows.
098            *
099            * @param dynamicQuery the dynamic query
100            * @return the matching rows
101            * @throws SystemException if a system exception occurred
102            */
103            @SuppressWarnings("rawtypes")
104            public java.util.List dynamicQuery(
105                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery)
106                    throws com.liferay.portal.kernel.exception.SystemException;
107    
108            /**
109            * Performs a dynamic query on the database and returns a range of the matching rows.
110            *
111            * <p>
112            * 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.AssetLinkModelImpl}. 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.
113            * </p>
114            *
115            * @param dynamicQuery the dynamic query
116            * @param start the lower bound of the range of model instances
117            * @param end the upper bound of the range of model instances (not inclusive)
118            * @return the range of matching rows
119            * @throws SystemException if a system exception occurred
120            */
121            @SuppressWarnings("rawtypes")
122            public java.util.List dynamicQuery(
123                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery, int start,
124                    int end) throws com.liferay.portal.kernel.exception.SystemException;
125    
126            /**
127            * Performs a dynamic query on the database and returns an ordered range of the matching rows.
128            *
129            * <p>
130            * 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.AssetLinkModelImpl}. 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.
131            * </p>
132            *
133            * @param dynamicQuery the dynamic query
134            * @param start the lower bound of the range of model instances
135            * @param end the upper bound of the range of model instances (not inclusive)
136            * @param orderByComparator the comparator to order the results by (optionally <code>null</code>)
137            * @return the ordered range of matching rows
138            * @throws SystemException if a system exception occurred
139            */
140            @SuppressWarnings("rawtypes")
141            public java.util.List dynamicQuery(
142                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery, int start,
143                    int end,
144                    com.liferay.portal.kernel.util.OrderByComparator orderByComparator)
145                    throws com.liferay.portal.kernel.exception.SystemException;
146    
147            /**
148            * Returns the number of rows that match the dynamic query.
149            *
150            * @param dynamicQuery the dynamic query
151            * @return the number of rows that match the dynamic query
152            * @throws SystemException if a system exception occurred
153            */
154            public long dynamicQueryCount(
155                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery)
156                    throws com.liferay.portal.kernel.exception.SystemException;
157    
158            /**
159            * Returns the number of rows that match the dynamic query.
160            *
161            * @param dynamicQuery the dynamic query
162            * @param projection the projection to apply to the query
163            * @return the number of rows that match the dynamic query
164            * @throws SystemException if a system exception occurred
165            */
166            public long dynamicQueryCount(
167                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery,
168                    com.liferay.portal.kernel.dao.orm.Projection projection)
169                    throws com.liferay.portal.kernel.exception.SystemException;
170    
171            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
172            public com.liferay.portlet.asset.model.AssetLink fetchAssetLink(long linkId)
173                    throws com.liferay.portal.kernel.exception.SystemException;
174    
175            /**
176            * Returns the asset link with the primary key.
177            *
178            * @param linkId the primary key of the asset link
179            * @return the asset link
180            * @throws PortalException if a asset link with the primary key could not be found
181            * @throws SystemException if a system exception occurred
182            */
183            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
184            public com.liferay.portlet.asset.model.AssetLink getAssetLink(long linkId)
185                    throws com.liferay.portal.kernel.exception.PortalException,
186                            com.liferay.portal.kernel.exception.SystemException;
187    
188            @Override
189            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
190            public com.liferay.portal.model.PersistedModel getPersistedModel(
191                    java.io.Serializable primaryKeyObj)
192                    throws com.liferay.portal.kernel.exception.PortalException,
193                            com.liferay.portal.kernel.exception.SystemException;
194    
195            /**
196            * Returns a range of all the asset links.
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.AssetLinkModelImpl}. 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 start the lower bound of the range of asset links
203            * @param end the upper bound of the range of asset links (not inclusive)
204            * @return the range of asset links
205            * @throws SystemException if a system exception occurred
206            */
207            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
208            public java.util.List<com.liferay.portlet.asset.model.AssetLink> getAssetLinks(
209                    int start, int end)
210                    throws com.liferay.portal.kernel.exception.SystemException;
211    
212            /**
213            * Returns the number of asset links.
214            *
215            * @return the number of asset links
216            * @throws SystemException if a system exception occurred
217            */
218            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
219            public int getAssetLinksCount()
220                    throws com.liferay.portal.kernel.exception.SystemException;
221    
222            /**
223            * Updates the asset link in the database or adds it if it does not yet exist. Also notifies the appropriate model listeners.
224            *
225            * @param assetLink the asset link
226            * @return the asset link that was updated
227            * @throws SystemException if a system exception occurred
228            */
229            public com.liferay.portlet.asset.model.AssetLink updateAssetLink(
230                    com.liferay.portlet.asset.model.AssetLink assetLink)
231                    throws com.liferay.portal.kernel.exception.SystemException;
232    
233            /**
234            * Returns the Spring bean ID for this bean.
235            *
236            * @return the Spring bean ID for this bean
237            */
238            public java.lang.String getBeanIdentifier();
239    
240            /**
241            * Sets the Spring bean ID for this bean.
242            *
243            * @param beanIdentifier the Spring bean ID for this bean
244            */
245            public void setBeanIdentifier(java.lang.String beanIdentifier);
246    
247            /**
248            * Adds a new asset link.
249            *
250            * @param userId the primary key of the link's creator
251            * @param entryId1 the primary key of the first asset entry
252            * @param entryId2 the primary key of the second asset entry
253            * @param type the link type. Acceptable values include {@link
254            com.liferay.portlet.asset.model.AssetLinkConstants#TYPE_RELATED}
255            which is a bidirectional relationship and {@link
256            com.liferay.portlet.asset.model.AssetLinkConstants#TYPE_CHILD}
257            which is a unidirectional relationship. For more information see
258            {@link com.liferay.portlet.asset.model.AssetLinkConstants}
259            * @param weight the weight of the relationship, allowing precedence
260            ordering of links
261            * @return the asset link
262            * @throws PortalException if the user could not be found
263            * @throws SystemException if a system exception occurred
264            */
265            public com.liferay.portlet.asset.model.AssetLink addLink(long userId,
266                    long entryId1, long entryId2, int type, int weight)
267                    throws com.liferay.portal.kernel.exception.PortalException,
268                            com.liferay.portal.kernel.exception.SystemException;
269    
270            /**
271            * Deletes the asset link.
272            *
273            * @param link the asset link
274            * @throws SystemException if a system exception occurred
275            */
276            public void deleteLink(com.liferay.portlet.asset.model.AssetLink link)
277                    throws com.liferay.portal.kernel.exception.SystemException;
278    
279            /**
280            * Deletes the asset link.
281            *
282            * @param linkId the primary key of the asset link
283            * @throws PortalException if the asset link could not be found
284            * @throws SystemException if a system exception occurred
285            */
286            public void deleteLink(long linkId)
287                    throws com.liferay.portal.kernel.exception.PortalException,
288                            com.liferay.portal.kernel.exception.SystemException;
289    
290            /**
291            * Deletes all links associated with the asset entry.
292            *
293            * @param entryId the primary key of the asset entry
294            * @throws SystemException if a system exception occurred
295            */
296            public void deleteLinks(long entryId)
297                    throws com.liferay.portal.kernel.exception.SystemException;
298    
299            /**
300            * Delete all links that associate the two asset entries.
301            *
302            * @param entryId1 the primary key of the first asset entry
303            * @param entryId2 the primary key of the second asset entry
304            * @throws SystemException if a system exception occurred
305            */
306            public void deleteLinks(long entryId1, long entryId2)
307                    throws com.liferay.portal.kernel.exception.SystemException;
308    
309            /**
310            * Returns all the asset links whose first entry ID is the given entry ID.
311            *
312            * @param entryId the primary key of the asset entry
313            * @return the asset links whose first entry ID is the given entry ID
314            * @throws SystemException if a system exception occurred
315            */
316            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
317            public java.util.List<com.liferay.portlet.asset.model.AssetLink> getDirectLinks(
318                    long entryId)
319                    throws com.liferay.portal.kernel.exception.SystemException;
320    
321            /**
322            * Returns all the asset links of the given link type whose first entry ID
323            * is the given entry ID.
324            *
325            * @param entryId the primary key of the asset entry
326            * @param typeId the link type. Acceptable values include {@link
327            com.liferay.portlet.asset.model.AssetLinkConstants#TYPE_RELATED}
328            which is a bidirectional relationship and {@link
329            com.liferay.portlet.asset.model.AssetLinkConstants#TYPE_CHILD}
330            which is a unidirectional relationship. For more information see
331            {@link com.liferay.portlet.asset.model.AssetLinkConstants}
332            * @return the asset links of the given link type whose first entry ID is
333            the given entry ID
334            * @throws SystemException if a system exception occurred
335            */
336            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
337            public java.util.List<com.liferay.portlet.asset.model.AssetLink> getDirectLinks(
338                    long entryId, int typeId)
339                    throws com.liferay.portal.kernel.exception.SystemException;
340    
341            /**
342            * Returns all the asset links whose first or second entry ID is the given
343            * entry ID.
344            *
345            * @param entryId the primary key of the asset entry
346            * @return the asset links whose first or second entry ID is the given entry
347            ID
348            * @throws SystemException if a system exception occurred
349            */
350            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
351            public java.util.List<com.liferay.portlet.asset.model.AssetLink> getLinks(
352                    long entryId)
353                    throws com.liferay.portal.kernel.exception.SystemException;
354    
355            /**
356            * Returns all the asset links of the given link type whose first or second
357            * entry ID is the given entry ID.
358            *
359            * @param entryId the primary key of the asset entry
360            * @param typeId the link type. Acceptable values include {@link
361            com.liferay.portlet.asset.model.AssetLinkConstants#TYPE_RELATED}
362            which is a bidirectional relationship and {@link
363            com.liferay.portlet.asset.model.AssetLinkConstants#TYPE_CHILD}
364            which is a unidirectional relationship. For more information see
365            {@link com.liferay.portlet.asset.model.AssetLinkConstants}
366            * @return the asset links of the given link type whose first or second
367            entry ID is the given entry ID
368            * @throws SystemException if a system exception occurred
369            */
370            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
371            public java.util.List<com.liferay.portlet.asset.model.AssetLink> getLinks(
372                    long entryId, int typeId)
373                    throws com.liferay.portal.kernel.exception.SystemException;
374    
375            /**
376            * Returns all the asset links of the given link type whose second entry ID
377            * is the given entry ID.
378            *
379            * @param entryId the primary key of the asset entry
380            * @param typeId the link type. Acceptable values include {@link
381            com.liferay.portlet.asset.model.AssetLinkConstants#TYPE_RELATED}
382            which is a bidirectional relationship and {@link
383            com.liferay.portlet.asset.model.AssetLinkConstants#TYPE_CHILD}
384            which is a unidirectional relationship. For more information see
385            {@link com.liferay.portlet.asset.model.AssetLinkConstants}
386            * @return the asset links of the given link type whose second entry ID is
387            the given entry ID
388            * @throws SystemException if a system exception occurred
389            */
390            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
391            public java.util.List<com.liferay.portlet.asset.model.AssetLink> getReverseLinks(
392                    long entryId, int typeId)
393                    throws com.liferay.portal.kernel.exception.SystemException;
394    
395            public com.liferay.portlet.asset.model.AssetLink updateLink(long userId,
396                    long entryId1, long entryId2, int typeId, int weight)
397                    throws com.liferay.portal.kernel.exception.PortalException,
398                            com.liferay.portal.kernel.exception.SystemException;
399    
400            /**
401            * Updates all links of the asset entry, replacing them with links
402            * associating the asset entry with the asset entries of the given link
403            * entry IDs.
404            *
405            * <p>
406            * If no link exists with a given link entry ID, a new link is created
407            * associating the current asset entry with the asset entry of that link
408            * entry ID. An existing link is deleted if either of its entry IDs is not
409            * contained in the given link entry IDs.
410            * </p>
411            *
412            * @param userId the primary key of the user updating the links
413            * @param entryId the primary key of the asset entry to be managed
414            * @param linkEntryIds the primary keys of the asset entries to be linked
415            with the asset entry to be managed
416            * @param typeId the type of the asset links to be created. Acceptable
417            values include {@link
418            com.liferay.portlet.asset.model.AssetLinkConstants#TYPE_RELATED}
419            which is a bidirectional relationship and {@link
420            com.liferay.portlet.asset.model.AssetLinkConstants#TYPE_CHILD}
421            which is a unidirectional relationship. For more information see
422            {@link com.liferay.portlet.asset.model.AssetLinkConstants}
423            * @throws PortalException if the user could not be found
424            * @throws SystemException if a system exception occurred
425            */
426            public void updateLinks(long userId, long entryId, long[] linkEntryIds,
427                    int typeId)
428                    throws com.liferay.portal.kernel.exception.PortalException,
429                            com.liferay.portal.kernel.exception.SystemException;
430    }