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.blogs.kernel.service;
016    
017    import aQute.bnd.annotation.ProviderType;
018    
019    import com.liferay.blogs.kernel.model.BlogsEntry;
020    
021    import com.liferay.exportimport.kernel.lar.PortletDataContext;
022    
023    import com.liferay.portal.kernel.dao.orm.ActionableDynamicQuery;
024    import com.liferay.portal.kernel.dao.orm.DynamicQuery;
025    import com.liferay.portal.kernel.dao.orm.ExportActionableDynamicQuery;
026    import com.liferay.portal.kernel.dao.orm.IndexableActionableDynamicQuery;
027    import com.liferay.portal.kernel.dao.orm.Projection;
028    import com.liferay.portal.kernel.dao.orm.QueryDefinition;
029    import com.liferay.portal.kernel.exception.PortalException;
030    import com.liferay.portal.kernel.exception.SystemException;
031    import com.liferay.portal.kernel.model.PersistedModel;
032    import com.liferay.portal.kernel.model.SystemEventConstants;
033    import com.liferay.portal.kernel.repository.model.Folder;
034    import com.liferay.portal.kernel.search.Indexable;
035    import com.liferay.portal.kernel.search.IndexableType;
036    import com.liferay.portal.kernel.service.BaseLocalService;
037    import com.liferay.portal.kernel.service.PersistedModelLocalService;
038    import com.liferay.portal.kernel.service.ServiceContext;
039    import com.liferay.portal.kernel.service.permission.ModelPermissions;
040    import com.liferay.portal.kernel.servlet.taglib.ui.ImageSelector;
041    import com.liferay.portal.kernel.systemevent.SystemEvent;
042    import com.liferay.portal.kernel.transaction.Isolation;
043    import com.liferay.portal.kernel.transaction.Propagation;
044    import com.liferay.portal.kernel.transaction.Transactional;
045    import com.liferay.portal.kernel.util.OrderByComparator;
046    
047    import java.io.InputStream;
048    import java.io.Serializable;
049    
050    import java.util.Date;
051    import java.util.List;
052    import java.util.Map;
053    
054    /**
055     * Provides the local service interface for BlogsEntry. Methods of this
056     * service will not have security checks based on the propagated JAAS
057     * credentials because this service can only be accessed from within the same
058     * VM.
059     *
060     * @author Brian Wing Shun Chan
061     * @see BlogsEntryLocalServiceUtil
062     * @see com.liferay.portlet.blogs.service.base.BlogsEntryLocalServiceBaseImpl
063     * @see com.liferay.portlet.blogs.service.impl.BlogsEntryLocalServiceImpl
064     * @generated
065     */
066    @ProviderType
067    @Transactional(isolation = Isolation.PORTAL, rollbackFor =  {
068            PortalException.class, SystemException.class})
069    public interface BlogsEntryLocalService extends BaseLocalService,
070            PersistedModelLocalService {
071            /*
072             * NOTE FOR DEVELOPERS:
073             *
074             * Never modify or reference this interface directly. Always use {@link BlogsEntryLocalServiceUtil} to access the blogs entry local service. Add custom service methods to {@link com.liferay.portlet.blogs.service.impl.BlogsEntryLocalServiceImpl} and rerun ServiceBuilder to automatically copy the method declarations to this interface.
075             */
076    
077            /**
078            * Adds the blogs entry to the database. Also notifies the appropriate model listeners.
079            *
080            * @param blogsEntry the blogs entry
081            * @return the blogs entry that was added
082            */
083            @Indexable(type = IndexableType.REINDEX)
084            public BlogsEntry addBlogsEntry(BlogsEntry blogsEntry);
085    
086            public BlogsEntry addEntry(long userId, java.lang.String title,
087                    java.lang.String content, ServiceContext serviceContext)
088                    throws PortalException;
089    
090            public BlogsEntry addEntry(long userId, java.lang.String title,
091                    java.lang.String content, Date displayDate,
092                    ServiceContext serviceContext) throws PortalException;
093    
094            /**
095            * @deprecated As of 7.0.0, replaced by {@link #addEntry(long, String,
096            String, String, String, int, int, int, int, int, boolean,
097            boolean, String[], String, ImageSelector, ImageSelector,
098            ServiceContext)}
099            */
100            @java.lang.Deprecated
101            public BlogsEntry addEntry(long userId, java.lang.String title,
102                    java.lang.String description, java.lang.String content,
103                    int displayDateMonth, int displayDateDay, int displayDateYear,
104                    int displayDateHour, int displayDateMinute, boolean allowPingbacks,
105                    boolean allowTrackbacks, java.lang.String[] trackbacks,
106                    boolean smallImage, java.lang.String smallImageURL,
107                    java.lang.String smallImageFileName, InputStream smallImageInputStream,
108                    ServiceContext serviceContext) throws PortalException;
109    
110            public BlogsEntry addEntry(long userId, java.lang.String title,
111                    java.lang.String subtitle, java.lang.String description,
112                    java.lang.String content, int displayDateMonth, int displayDateDay,
113                    int displayDateYear, int displayDateHour, int displayDateMinute,
114                    boolean allowPingbacks, boolean allowTrackbacks,
115                    java.lang.String[] trackbacks, java.lang.String coverImageCaption,
116                    ImageSelector coverImageImageSelector,
117                    ImageSelector smallImageImageSelector, ServiceContext serviceContext)
118                    throws PortalException;
119    
120            @Indexable(type = IndexableType.REINDEX)
121            public BlogsEntry addEntry(long userId, java.lang.String title,
122                    java.lang.String subtitle, java.lang.String description,
123                    java.lang.String content, Date displayDate, boolean allowPingbacks,
124                    boolean allowTrackbacks, java.lang.String[] trackbacks,
125                    java.lang.String coverImageCaption,
126                    ImageSelector coverImageImageSelector,
127                    ImageSelector smallImageImageSelector, ServiceContext serviceContext)
128                    throws PortalException;
129    
130            /**
131            * Creates a new blogs entry with the primary key. Does not add the blogs entry to the database.
132            *
133            * @param entryId the primary key for the new blogs entry
134            * @return the new blogs entry
135            */
136            public BlogsEntry createBlogsEntry(long entryId);
137    
138            /**
139            * Deletes the blogs entry from the database. Also notifies the appropriate model listeners.
140            *
141            * @param blogsEntry the blogs entry
142            * @return the blogs entry that was removed
143            */
144            @Indexable(type = IndexableType.DELETE)
145            public BlogsEntry deleteBlogsEntry(BlogsEntry blogsEntry);
146    
147            /**
148            * Deletes the blogs entry with the primary key from the database. Also notifies the appropriate model listeners.
149            *
150            * @param entryId the primary key of the blogs entry
151            * @return the blogs entry that was removed
152            * @throws PortalException if a blogs entry with the primary key could not be found
153            */
154            @Indexable(type = IndexableType.DELETE)
155            public BlogsEntry deleteBlogsEntry(long entryId) throws PortalException;
156    
157            @Indexable(type = IndexableType.DELETE)
158            @SystemEvent(type = SystemEventConstants.TYPE_DELETE)
159            public BlogsEntry deleteEntry(BlogsEntry entry) throws PortalException;
160    
161            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
162            public BlogsEntry fetchBlogsEntry(long entryId);
163    
164            /**
165            * Returns the blogs entry matching the UUID and group.
166            *
167            * @param uuid the blogs entry's UUID
168            * @param groupId the primary key of the group
169            * @return the matching blogs entry, or <code>null</code> if a matching blogs entry could not be found
170            */
171            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
172            public BlogsEntry fetchBlogsEntryByUuidAndGroupId(java.lang.String uuid,
173                    long groupId);
174    
175            /**
176            * Returns the blogs entry with the primary key.
177            *
178            * @param entryId the primary key of the blogs entry
179            * @return the blogs entry
180            * @throws PortalException if a blogs entry with the primary key could not be found
181            */
182            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
183            public BlogsEntry getBlogsEntry(long entryId) throws PortalException;
184    
185            /**
186            * Returns the blogs entry matching the UUID and group.
187            *
188            * @param uuid the blogs entry's UUID
189            * @param groupId the primary key of the group
190            * @return the matching blogs entry
191            * @throws PortalException if a matching blogs entry could not be found
192            */
193            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
194            public BlogsEntry getBlogsEntryByUuidAndGroupId(java.lang.String uuid,
195                    long groupId) throws PortalException;
196    
197            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
198            public BlogsEntry getEntry(long entryId) throws PortalException;
199    
200            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
201            public BlogsEntry getEntry(long groupId, java.lang.String urlTitle)
202                    throws PortalException;
203    
204            /**
205            * Moves the blogs entry to the recycle bin. Social activity counters for
206            * this entry get disabled.
207            *
208            * @param userId the primary key of the user moving the blogs entry
209            * @param entry the blogs entry to be moved
210            * @return the moved blogs entry
211            */
212            @Indexable(type = IndexableType.REINDEX)
213            public BlogsEntry moveEntryToTrash(long userId, BlogsEntry entry)
214                    throws PortalException;
215    
216            /**
217            * Moves the blogs entry with the ID to the recycle bin.
218            *
219            * @param userId the primary key of the user moving the blogs entry
220            * @param entryId the primary key of the blogs entry to be moved
221            * @return the moved blogs entry
222            */
223            public BlogsEntry moveEntryToTrash(long userId, long entryId)
224                    throws PortalException;
225    
226            /**
227            * Restores the blogs entry with the ID from the recycle bin. Social
228            * activity counters for this entry get activated.
229            *
230            * @param userId the primary key of the user restoring the blogs entry
231            * @param entryId the primary key of the blogs entry to be restored
232            * @return the restored blogs entry from the recycle bin
233            */
234            @Indexable(type = IndexableType.REINDEX)
235            public BlogsEntry restoreEntryFromTrash(long userId, long entryId)
236                    throws PortalException;
237    
238            /**
239            * Updates the blogs entry in the database or adds it if it does not yet exist. Also notifies the appropriate model listeners.
240            *
241            * @param blogsEntry the blogs entry
242            * @return the blogs entry that was updated
243            */
244            @Indexable(type = IndexableType.REINDEX)
245            public BlogsEntry updateBlogsEntry(BlogsEntry blogsEntry);
246    
247            public BlogsEntry updateEntry(long userId, long entryId,
248                    java.lang.String title, java.lang.String content,
249                    ServiceContext serviceContext) throws PortalException;
250    
251            /**
252            * @deprecated As of 7.0.0, replaced by {@link #updateEntry(long, long,
253            String, String, String, String, int, int, int, int, int,
254            boolean, boolean, String[], String, ImageSelector,
255            ImageSelector, ServiceContext)}
256            */
257            @java.lang.Deprecated
258            public BlogsEntry updateEntry(long userId, long entryId,
259                    java.lang.String title, java.lang.String description,
260                    java.lang.String content, int displayDateMonth, int displayDateDay,
261                    int displayDateYear, int displayDateHour, int displayDateMinute,
262                    boolean allowPingbacks, boolean allowTrackbacks,
263                    java.lang.String[] trackbacks, boolean smallImage,
264                    java.lang.String smallImageURL, java.lang.String smallImageFileName,
265                    InputStream smallImageInputStream, ServiceContext serviceContext)
266                    throws PortalException;
267    
268            public BlogsEntry updateEntry(long userId, long entryId,
269                    java.lang.String title, java.lang.String subtitle,
270                    java.lang.String description, java.lang.String content,
271                    int displayDateMonth, int displayDateDay, int displayDateYear,
272                    int displayDateHour, int displayDateMinute, boolean allowPingbacks,
273                    boolean allowTrackbacks, java.lang.String[] trackbacks,
274                    java.lang.String coverImageCaption,
275                    ImageSelector coverImageImageSelector,
276                    ImageSelector smallImageImageSelector, ServiceContext serviceContext)
277                    throws PortalException;
278    
279            @Indexable(type = IndexableType.REINDEX)
280            public BlogsEntry updateEntry(long userId, long entryId,
281                    java.lang.String title, java.lang.String subtitle,
282                    java.lang.String description, java.lang.String content,
283                    Date displayDate, boolean allowPingbacks, boolean allowTrackbacks,
284                    java.lang.String[] trackbacks, java.lang.String coverImageCaption,
285                    ImageSelector coverImageImageSelector,
286                    ImageSelector smallImageImageSelector, ServiceContext serviceContext)
287                    throws PortalException;
288    
289            /**
290            * @deprecated As of 7.0.0, replaced by {@link #updateStatus(long, long,
291            int, ServiceContext, Map)}
292            */
293            @java.lang.Deprecated
294            public BlogsEntry updateStatus(long userId, long entryId, int status,
295                    ServiceContext serviceContext) throws PortalException;
296    
297            @Indexable(type = IndexableType.REINDEX)
298            public BlogsEntry updateStatus(long userId, long entryId, int status,
299                    ServiceContext serviceContext,
300                    Map<java.lang.String, Serializable> workflowContext)
301                    throws PortalException;
302    
303            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
304            public BlogsEntry[] getEntriesPrevAndNext(long entryId)
305                    throws PortalException;
306    
307            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
308            public ActionableDynamicQuery getActionableDynamicQuery();
309    
310            public DynamicQuery dynamicQuery();
311    
312            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
313            public ExportActionableDynamicQuery getExportActionableDynamicQuery(
314                    PortletDataContext portletDataContext);
315    
316            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
317            public IndexableActionableDynamicQuery getIndexableActionableDynamicQuery();
318    
319            /**
320            * @throws PortalException
321            */
322            @Override
323            public PersistedModel deletePersistedModel(PersistedModel persistedModel)
324                    throws PortalException;
325    
326            @Override
327            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
328            public PersistedModel getPersistedModel(Serializable primaryKeyObj)
329                    throws PortalException;
330    
331            public Folder addAttachmentsFolder(long userId, long groupId)
332                    throws PortalException;
333    
334            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
335            public Folder fetchAttachmentsFolder(long userId, long groupId);
336    
337            /**
338            * Returns the number of blogs entries.
339            *
340            * @return the number of blogs entries
341            */
342            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
343            public int getBlogsEntriesCount();
344    
345            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
346            public int getCompanyEntriesCount(long companyId, Date displayDate,
347                    QueryDefinition<BlogsEntry> queryDefinition);
348    
349            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
350            public int getGroupEntriesCount(long groupId,
351                    QueryDefinition<BlogsEntry> queryDefinition);
352    
353            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
354            public int getGroupEntriesCount(long groupId, Date displayDate,
355                    QueryDefinition<BlogsEntry> queryDefinition);
356    
357            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
358            public int getGroupUserEntriesCount(long groupId, long userId,
359                    Date displayDate, QueryDefinition<BlogsEntry> queryDefinition);
360    
361            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
362            public int getOrganizationEntriesCount(long organizationId,
363                    Date displayDate, QueryDefinition<BlogsEntry> queryDefinition);
364    
365            /**
366            * Returns the OSGi service identifier.
367            *
368            * @return the OSGi service identifier
369            */
370            public java.lang.String getOSGiServiceIdentifier();
371    
372            /**
373            * Performs a dynamic query on the database and returns the matching rows.
374            *
375            * @param dynamicQuery the dynamic query
376            * @return the matching rows
377            */
378            public <T> List<T> dynamicQuery(DynamicQuery dynamicQuery);
379    
380            /**
381            * Performs a dynamic query on the database and returns a range of the matching rows.
382            *
383            * <p>
384            * 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.blogs.model.impl.BlogsEntryModelImpl}. 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.
385            * </p>
386            *
387            * @param dynamicQuery the dynamic query
388            * @param start the lower bound of the range of model instances
389            * @param end the upper bound of the range of model instances (not inclusive)
390            * @return the range of matching rows
391            */
392            public <T> List<T> dynamicQuery(DynamicQuery dynamicQuery, int start,
393                    int end);
394    
395            /**
396            * Performs a dynamic query on the database and returns an ordered range of the matching rows.
397            *
398            * <p>
399            * 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.blogs.model.impl.BlogsEntryModelImpl}. 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.
400            * </p>
401            *
402            * @param dynamicQuery the dynamic query
403            * @param start the lower bound of the range of model instances
404            * @param end the upper bound of the range of model instances (not inclusive)
405            * @param orderByComparator the comparator to order the results by (optionally <code>null</code>)
406            * @return the ordered range of matching rows
407            */
408            public <T> List<T> dynamicQuery(DynamicQuery dynamicQuery, int start,
409                    int end, OrderByComparator<T> orderByComparator);
410    
411            /**
412            * Returns a range of all the blogs entries.
413            *
414            * <p>
415            * 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.blogs.model.impl.BlogsEntryModelImpl}. 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.
416            * </p>
417            *
418            * @param start the lower bound of the range of blogs entries
419            * @param end the upper bound of the range of blogs entries (not inclusive)
420            * @return the range of blogs entries
421            */
422            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
423            public List<BlogsEntry> getBlogsEntries(int start, int end);
424    
425            /**
426            * Returns all the blogs entries matching the UUID and company.
427            *
428            * @param uuid the UUID of the blogs entries
429            * @param companyId the primary key of the company
430            * @return the matching blogs entries, or an empty list if no matches were found
431            */
432            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
433            public List<BlogsEntry> getBlogsEntriesByUuidAndCompanyId(
434                    java.lang.String uuid, long companyId);
435    
436            /**
437            * Returns a range of blogs entries matching the UUID and company.
438            *
439            * @param uuid the UUID of the blogs entries
440            * @param companyId the primary key of the company
441            * @param start the lower bound of the range of blogs entries
442            * @param end the upper bound of the range of blogs entries (not inclusive)
443            * @param orderByComparator the comparator to order the results by (optionally <code>null</code>)
444            * @return the range of matching blogs entries, or an empty list if no matches were found
445            */
446            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
447            public List<BlogsEntry> getBlogsEntriesByUuidAndCompanyId(
448                    java.lang.String uuid, long companyId, int start, int end,
449                    OrderByComparator<BlogsEntry> orderByComparator);
450    
451            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
452            public List<BlogsEntry> getCompanyEntries(long companyId, Date displayDate,
453                    QueryDefinition<BlogsEntry> queryDefinition);
454    
455            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
456            public List<BlogsEntry> getGroupEntries(long groupId,
457                    QueryDefinition<BlogsEntry> queryDefinition);
458    
459            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
460            public List<BlogsEntry> getGroupEntries(long groupId, Date displayDate,
461                    QueryDefinition<BlogsEntry> queryDefinition);
462    
463            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
464            public List<BlogsEntry> getGroupUserEntries(long groupId, long userId,
465                    Date displayDate, QueryDefinition<BlogsEntry> queryDefinition);
466    
467            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
468            public List<BlogsEntry> getGroupsEntries(long companyId, long groupId,
469                    Date displayDate, QueryDefinition<BlogsEntry> queryDefinition);
470    
471            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
472            public List<BlogsEntry> getNoAssetEntries();
473    
474            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
475            public List<BlogsEntry> getOrganizationEntries(long organizationId,
476                    Date displayDate, QueryDefinition<BlogsEntry> queryDefinition);
477    
478            public long addOriginalImageFileEntry(long userId, long groupId,
479                    long entryId, ImageSelector imageSelector) throws PortalException;
480    
481            /**
482            * Returns the number of rows matching the dynamic query.
483            *
484            * @param dynamicQuery the dynamic query
485            * @return the number of rows matching the dynamic query
486            */
487            public long dynamicQueryCount(DynamicQuery dynamicQuery);
488    
489            /**
490            * Returns the number of rows matching the dynamic query.
491            *
492            * @param dynamicQuery the dynamic query
493            * @param projection the projection to apply to the query
494            * @return the number of rows matching the dynamic query
495            */
496            public long dynamicQueryCount(DynamicQuery dynamicQuery,
497                    Projection projection);
498    
499            public void addCoverImage(long entryId, ImageSelector imageSelector)
500                    throws PortalException;
501    
502            public void addEntryResources(BlogsEntry entry,
503                    boolean addGroupPermissions, boolean addGuestPermissions)
504                    throws PortalException;
505    
506            public void addEntryResources(BlogsEntry entry,
507                    ModelPermissions modelPermissions) throws PortalException;
508    
509            public void addEntryResources(long entryId, boolean addGroupPermissions,
510                    boolean addGuestPermissions) throws PortalException;
511    
512            public void addEntryResources(long entryId,
513                    ModelPermissions modelPermissions) throws PortalException;
514    
515            public void addSmallImage(long entryId, ImageSelector imageSelector)
516                    throws PortalException;
517    
518            public void checkEntries() throws PortalException;
519    
520            public void deleteEntries(long groupId) throws PortalException;
521    
522            public void deleteEntry(long entryId) throws PortalException;
523    
524            public void moveEntriesToTrash(long groupId, long userId)
525                    throws PortalException;
526    
527            public void subscribe(long userId, long groupId) throws PortalException;
528    
529            public void unsubscribe(long userId, long groupId)
530                    throws PortalException;
531    
532            public void updateAsset(long userId, BlogsEntry entry,
533                    long[] assetCategoryIds, java.lang.String[] assetTagNames,
534                    long[] assetLinkEntryIds, java.lang.Double priority)
535                    throws PortalException;
536    
537            public void updateEntryResources(BlogsEntry entry,
538                    ModelPermissions modelPermissions) throws PortalException;
539    
540            public void updateEntryResources(BlogsEntry entry,
541                    java.lang.String[] groupPermissions, java.lang.String[] guestPermissions)
542                    throws PortalException;
543    }