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