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. 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.
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. 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.
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. 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.
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            * Returns the Spring bean ID for this bean.
219            *
220            * @return the Spring bean ID for this bean
221            */
222            public java.lang.String getBeanIdentifier();
223    
224            /**
225            * Sets the Spring bean ID for this bean.
226            *
227            * @param beanIdentifier the Spring bean ID for this bean
228            */
229            public void setBeanIdentifier(java.lang.String beanIdentifier);
230    
231            /**
232            * Adds a new asset link.
233            *
234            * @param userId the primary key of the link's creator
235            * @param entryId1 the primary key of the first asset entry
236            * @param entryId2 the primary key of the second asset entry
237            * @param type the link type. Acceptable values include {@link
238            com.liferay.portlet.asset.model.AssetLinkConstants#TYPE_RELATED}
239            which is a bidirectional relationship and {@link
240            com.liferay.portlet.asset.model.AssetLinkConstants#TYPE_CHILD}
241            which is a unidirectional relationship. For more information see
242            {@link com.liferay.portlet.asset.model.AssetLinkConstants}
243            * @param weight the weight of the relationship, allowing precedence
244            ordering of links
245            * @return the asset link
246            * @throws PortalException if the user could not be found
247            * @throws SystemException if a system exception occurred
248            */
249            public com.liferay.portlet.asset.model.AssetLink addLink(long userId,
250                    long entryId1, long entryId2, int type, int weight)
251                    throws com.liferay.portal.kernel.exception.PortalException,
252                            com.liferay.portal.kernel.exception.SystemException;
253    
254            /**
255            * Deletes the asset link.
256            *
257            * @param link the asset link
258            * @throws SystemException if a system exception occurred
259            */
260            public void deleteLink(com.liferay.portlet.asset.model.AssetLink link)
261                    throws com.liferay.portal.kernel.exception.SystemException;
262    
263            /**
264            * Deletes the asset link.
265            *
266            * @param linkId the primary key of the asset link
267            * @throws PortalException if the asset link could not be found
268            * @throws SystemException if a system exception occurred
269            */
270            public void deleteLink(long linkId)
271                    throws com.liferay.portal.kernel.exception.PortalException,
272                            com.liferay.portal.kernel.exception.SystemException;
273    
274            /**
275            * Deletes all links associated with the asset entry.
276            *
277            * @param entryId the primary key of the asset entry
278            * @throws SystemException if a system exception occurred
279            */
280            public void deleteLinks(long entryId)
281                    throws com.liferay.portal.kernel.exception.SystemException;
282    
283            /**
284            * Delete all links that associate the two asset entries.
285            *
286            * @param entryId1 the primary key of the first asset entry
287            * @param entryId2 the primary key of the second asset entry
288            * @throws SystemException if a system exception occurred
289            */
290            public void deleteLinks(long entryId1, long entryId2)
291                    throws com.liferay.portal.kernel.exception.SystemException;
292    
293            /**
294            * Returns all the asset links whose first entry ID is the given entry ID.
295            *
296            * @param entryId the primary key of the asset entry
297            * @return the asset links whose first entry ID is the given entry ID
298            * @throws SystemException if a system exception occurred
299            */
300            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
301            public java.util.List<com.liferay.portlet.asset.model.AssetLink> getDirectLinks(
302                    long entryId)
303                    throws com.liferay.portal.kernel.exception.SystemException;
304    
305            /**
306            * Returns all the asset links of the given link type whose first entry ID
307            * is the given entry ID.
308            *
309            * @param entryId the primary key of the asset entry
310            * @param typeId the link type. Acceptable values include {@link
311            com.liferay.portlet.asset.model.AssetLinkConstants#TYPE_RELATED}
312            which is a bidirectional relationship and {@link
313            com.liferay.portlet.asset.model.AssetLinkConstants#TYPE_CHILD}
314            which is a unidirectional relationship. For more information see
315            {@link com.liferay.portlet.asset.model.AssetLinkConstants}
316            * @return the asset links of the given link type whose first entry ID is
317            the given entry ID
318            * @throws SystemException if a system exception occurred
319            */
320            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
321            public java.util.List<com.liferay.portlet.asset.model.AssetLink> getDirectLinks(
322                    long entryId, int typeId)
323                    throws com.liferay.portal.kernel.exception.SystemException;
324    
325            /**
326            * Returns all the asset links whose first or second entry ID is the given
327            * entry ID.
328            *
329            * @param entryId the primary key of the asset entry
330            * @return the asset links whose first or second entry ID is the given entry
331            ID
332            * @throws SystemException if a system exception occurred
333            */
334            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
335            public java.util.List<com.liferay.portlet.asset.model.AssetLink> getLinks(
336                    long entryId)
337                    throws com.liferay.portal.kernel.exception.SystemException;
338    
339            /**
340            * Returns all the asset links of the given link type whose first or second
341            * entry ID is the given entry ID.
342            *
343            * @param entryId the primary key of the asset entry
344            * @param typeId the link type. Acceptable values include {@link
345            com.liferay.portlet.asset.model.AssetLinkConstants#TYPE_RELATED}
346            which is a bidirectional relationship and {@link
347            com.liferay.portlet.asset.model.AssetLinkConstants#TYPE_CHILD}
348            which is a unidirectional relationship. For more information see
349            {@link com.liferay.portlet.asset.model.AssetLinkConstants}
350            * @return the asset links of the given link type whose first or second
351            entry ID is the given entry ID
352            * @throws SystemException if a system exception occurred
353            */
354            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
355            public java.util.List<com.liferay.portlet.asset.model.AssetLink> getLinks(
356                    long entryId, int typeId)
357                    throws com.liferay.portal.kernel.exception.SystemException;
358    
359            /**
360            * Returns all the asset links of the given link type whose second entry ID
361            * is the given entry ID.
362            *
363            * @param entryId the primary key of the asset entry
364            * @param typeId the link type. Acceptable values include {@link
365            com.liferay.portlet.asset.model.AssetLinkConstants#TYPE_RELATED}
366            which is a bidirectional relationship and {@link
367            com.liferay.portlet.asset.model.AssetLinkConstants#TYPE_CHILD}
368            which is a unidirectional relationship. For more information see
369            {@link com.liferay.portlet.asset.model.AssetLinkConstants}
370            * @return the asset links of the given link type whose second entry ID is
371            the given entry ID
372            * @throws SystemException if a system exception occurred
373            */
374            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
375            public java.util.List<com.liferay.portlet.asset.model.AssetLink> getReverseLinks(
376                    long entryId, int typeId)
377                    throws com.liferay.portal.kernel.exception.SystemException;
378    
379            /**
380            * Updates all links of the asset entry, replacing them with links
381            * associating the asset entry with the asset entries of the given link
382            * entry IDs.
383            *
384            * <p>
385            * If no link exists with a given link entry ID, a new link is created
386            * associating the current asset entry with the asset entry of that link
387            * entry ID. An existing link is deleted if either of its entry IDs is not
388            * contained in the given link entry IDs.
389            * </p>
390            *
391            * @param userId the primary key of the user updating the links
392            * @param entryId the primary key of the asset entry to be managed
393            * @param linkEntryIds the primary keys of the asset entries to be linked
394            with the asset entry to be managed
395            * @param typeId the type of the asset links to be created. Acceptable
396            values include {@link
397            com.liferay.portlet.asset.model.AssetLinkConstants#TYPE_RELATED}
398            which is a bidirectional relationship and {@link
399            com.liferay.portlet.asset.model.AssetLinkConstants#TYPE_CHILD}
400            which is a unidirectional relationship. For more information see
401            {@link com.liferay.portlet.asset.model.AssetLinkConstants}
402            * @throws PortalException if the user could not be found
403            * @throws SystemException if a system exception occurred
404            */
405            public void updateLinks(long userId, long entryId, long[] linkEntryIds,
406                    int typeId)
407                    throws com.liferay.portal.kernel.exception.PortalException,
408                            com.liferay.portal.kernel.exception.SystemException;
409    }