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