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.portal.service;
016    
017    import com.liferay.portal.kernel.exception.PortalException;
018    import com.liferay.portal.kernel.exception.SystemException;
019    import com.liferay.portal.kernel.jsonwebservice.JSONWebService;
020    import com.liferay.portal.kernel.transaction.Isolation;
021    import com.liferay.portal.kernel.transaction.Propagation;
022    import com.liferay.portal.kernel.transaction.Transactional;
023    
024    /**
025     * The interface for the layout remote service.
026     *
027     * <p>
028     * This is a remote service. Methods of this service are expected to have security checks based on the propagated JAAS credentials because this service can be accessed remotely.
029     * </p>
030     *
031     * @author Brian Wing Shun Chan
032     * @see LayoutServiceUtil
033     * @see com.liferay.portal.service.base.LayoutServiceBaseImpl
034     * @see com.liferay.portal.service.impl.LayoutServiceImpl
035     * @generated
036     */
037    @JSONWebService
038    @Transactional(isolation = Isolation.PORTAL, rollbackFor =  {
039            PortalException.class, SystemException.class})
040    public interface LayoutService extends BaseService {
041            /*
042             * NOTE FOR DEVELOPERS:
043             *
044             * Never modify or reference this interface directly. Always use {@link LayoutServiceUtil} to access the layout remote service. Add custom service methods to {@link com.liferay.portal.service.impl.LayoutServiceImpl} and rerun ServiceBuilder to automatically copy the method declarations to this interface.
045             */
046    
047            /**
048            * Returns the Spring bean ID for this bean.
049            *
050            * @return the Spring bean ID for this bean
051            */
052            public java.lang.String getBeanIdentifier();
053    
054            /**
055            * Sets the Spring bean ID for this bean.
056            *
057            * @param beanIdentifier the Spring bean ID for this bean
058            */
059            public void setBeanIdentifier(java.lang.String beanIdentifier);
060    
061            /**
062            * Adds a layout with additional parameters.
063            *
064            * <p>
065            * This method handles the creation of the layout including its resources,
066            * metadata, and internal data structures. It is not necessary to make
067            * subsequent calls to any methods to setup default groups, resources, ...
068            * etc.
069            * </p>
070            *
071            * @param groupId the primary key of the group
072            * @param privateLayout whether the layout is private to the group
073            * @param parentLayoutId the primary key of the parent layout (optionally
074            {@link
075            com.liferay.portal.model.LayoutConstants#DEFAULT_PARENT_LAYOUT_ID})
076            * @param localeNamesMap the layout's locales and localized names
077            * @param localeTitlesMap the layout's locales and localized titles
078            * @param descriptionMap the layout's locales and localized descriptions
079            * @param keywordsMap the layout's locales and localized keywords
080            * @param robotsMap the layout's locales and localized robots
081            * @param type the layout's type (optionally {@link
082            com.liferay.portal.model.LayoutConstants#TYPE_PORTLET}). The
083            possible types can be found in {@link
084            com.liferay.portal.model.LayoutConstants}.
085            * @param hidden whether the layout is hidden
086            * @param friendlyURL the layout's friendly URL (optionally {@link
087            com.liferay.portal.util.PropsValues#DEFAULT_USER_PRIVATE_LAYOUT_FRIENDLY_URL}
088            or {@link
089            com.liferay.portal.util.PropsValues#DEFAULT_USER_PUBLIC_LAYOUT_FRIENDLY_URL}).
090            The default values can be overridden in
091            <code>portal-ext.properties</code> by specifying new values for
092            the corresponding properties defined in {@link
093            com.liferay.portal.util.PropsValues}. To see how the URL is
094            normalized when accessed see {@link
095            com.liferay.portal.kernel.util.FriendlyURLNormalizerUtil#normalize(
096            String)}.
097            * @param serviceContext the service context. Must set the universally
098            unique identifier (UUID) for the layout. Can set the creation
099            date, modification date and the expando bridge attributes for the
100            layout. For layouts that belong to a layout set prototype, an
101            attribute named 'layoutUpdateable' can be used to specify whether
102            site administrators can modify this page within their site.
103            * @return the layout
104            * @throws PortalException if a group with the primary key could not be
105            found, if the group did not have permission to manage the layouts
106            involved, or if layout values were invalid
107            * @throws SystemException if a system exception occurred
108            */
109            public com.liferay.portal.model.Layout addLayout(long groupId,
110                    boolean privateLayout, long parentLayoutId,
111                    java.util.Map<java.util.Locale, java.lang.String> localeNamesMap,
112                    java.util.Map<java.util.Locale, java.lang.String> localeTitlesMap,
113                    java.util.Map<java.util.Locale, java.lang.String> descriptionMap,
114                    java.util.Map<java.util.Locale, java.lang.String> keywordsMap,
115                    java.util.Map<java.util.Locale, java.lang.String> robotsMap,
116                    java.lang.String type, boolean hidden, java.lang.String friendlyURL,
117                    com.liferay.portal.service.ServiceContext serviceContext)
118                    throws com.liferay.portal.kernel.exception.PortalException,
119                            com.liferay.portal.kernel.exception.SystemException;
120    
121            /**
122            * <p>
123            * This method handles the creation of the layout including its resources,
124            * metadata, and internal data structures. It is not necessary to make
125            * subsequent calls to any methods to setup default groups, resources, ...
126            * etc.
127            * </p>
128            *
129            * @param groupId the primary key of the group
130            * @param privateLayout whether the layout is private to the group
131            * @param parentLayoutId the primary key of the parent layout (optionally
132            {@link
133            com.liferay.portal.model.LayoutConstants#DEFAULT_PARENT_LAYOUT_ID})
134            * @param name Map the layout's locales and localized names
135            * @param title Map the layout's locales and localized titles
136            * @param description Map the layout's locales and localized descriptions
137            * @param type the layout's type (optionally {@link
138            com.liferay.portal.model.LayoutConstants#TYPE_PORTLET}). The
139            possible types can be found in {@link
140            com.liferay.portal.model.LayoutConstants}.
141            * @param hidden whether the layout is hidden
142            * @param friendlyURL the layout's friendly URL (optionally {@link
143            com.liferay.portal.util.PropsValues#DEFAULT_USER_PRIVATE_LAYOUT_FRIENDLY_URL}
144            or {@link
145            com.liferay.portal.util.PropsValues#DEFAULT_USER_PUBLIC_LAYOUT_FRIENDLY_URL}).
146            The default values can be overridden in
147            <code>portal-ext.properties</code> by specifying new values for
148            the corresponding properties defined in {@link
149            com.liferay.portal.util.PropsValues}. To see how the URL is
150            normalized when accessed see {@link
151            com.liferay.portal.kernel.util.FriendlyURLNormalizerUtil#normalize(
152            String)}.
153            * @param serviceContext the service context. Must set the universally
154            unique identifier (UUID) for the layout. Can specify the creation
155            date, modification date and the expando bridge attributes for the
156            layout. For layouts that belong to a layout set prototype, an
157            attribute named 'layoutUpdateable' can be used to specify whether
158            site administrators can modify this page within their site.
159            * @return the layout
160            * @throws PortalException if a group with the primary key could not be
161            found, if the group did not have permission to manage the layouts
162            involved, or if layout values were invalid
163            * @throws SystemException if a system exception occurred
164            */
165            public com.liferay.portal.model.Layout addLayout(long groupId,
166                    boolean privateLayout, long parentLayoutId, java.lang.String name,
167                    java.lang.String title, java.lang.String description,
168                    java.lang.String type, boolean hidden, java.lang.String friendlyURL,
169                    com.liferay.portal.service.ServiceContext serviceContext)
170                    throws com.liferay.portal.kernel.exception.PortalException,
171                            com.liferay.portal.kernel.exception.SystemException;
172    
173            /**
174            * Deletes the layout with the primary key, also deleting the layout's child
175            * layouts, and associated resources.
176            *
177            * @param groupId the primary key of the group
178            * @param privateLayout whether the layout is private to the group
179            * @param layoutId the primary key of the layout
180            * @param serviceContext the service context
181            * @throws PortalException if the user did not have permission to delete the
182            layout, if a matching layout could not be found , or if some
183            other portal exception occurred
184            * @throws SystemException if a system exception occurred
185            */
186            public void deleteLayout(long groupId, boolean privateLayout,
187                    long layoutId, com.liferay.portal.service.ServiceContext serviceContext)
188                    throws com.liferay.portal.kernel.exception.PortalException,
189                            com.liferay.portal.kernel.exception.SystemException;
190    
191            /**
192            * Deletes the layout with the plid, also deleting the layout's child
193            * layouts, and associated resources.
194            *
195            * @param plid the primary key of the layout
196            * @param serviceContext the service context
197            * @throws PortalException if the user did not have permission to delete the
198            layout, if a layout with the primary key could not be found , or
199            if some other portal exception occurred
200            * @throws SystemException if a system exception occurred
201            */
202            public void deleteLayout(long plid,
203                    com.liferay.portal.service.ServiceContext serviceContext)
204                    throws com.liferay.portal.kernel.exception.PortalException,
205                            com.liferay.portal.kernel.exception.SystemException;
206    
207            /**
208            * Exports the layouts that match the primary keys and the criteria as a
209            * byte array.
210            *
211            * @param groupId the primary key of the group
212            * @param privateLayout whether the layout is private to the group
213            * @param layoutIds the primary keys of the layouts to be exported
214            * @param parameterMap the mapping of parameters indicating which
215            information to export. For information on the keys used in the
216            map see {@link
217            com.liferay.portal.kernel.lar.PortletDataHandlerKeys}.
218            * @param startDate the export's start date
219            * @param endDate the export's end date
220            * @return the layouts as a byte array
221            * @throws PortalException if a group or any layout with the primary key
222            could not be found, if the group did not have permission to
223            manage the layouts, or if some other portal exception occurred
224            * @throws SystemException if a system exception occurred
225            */
226            public byte[] exportLayouts(long groupId, boolean privateLayout,
227                    long[] layoutIds,
228                    java.util.Map<java.lang.String, java.lang.String[]> parameterMap,
229                    java.util.Date startDate, java.util.Date endDate)
230                    throws com.liferay.portal.kernel.exception.PortalException,
231                            com.liferay.portal.kernel.exception.SystemException;
232    
233            /**
234            * Exports all layouts that match the criteria as a byte array.
235            *
236            * @param groupId the primary key of the group
237            * @param privateLayout whether the layout is private to the group
238            * @param parameterMap the mapping of parameters indicating which
239            information to export. For information on the keys used in the
240            map see {@link
241            com.liferay.portal.kernel.lar.PortletDataHandlerKeys}.
242            * @param startDate the export's start date
243            * @param endDate the export's end date
244            * @return the layout as a byte array
245            * @throws PortalException if a group with the primary key could not be
246            found, if the group did not have permission to manage the
247            layouts, or if some other portal exception occurred
248            * @throws SystemException if a system exception occurred
249            */
250            public byte[] exportLayouts(long groupId, boolean privateLayout,
251                    java.util.Map<java.lang.String, java.lang.String[]> parameterMap,
252                    java.util.Date startDate, java.util.Date endDate)
253                    throws com.liferay.portal.kernel.exception.PortalException,
254                            com.liferay.portal.kernel.exception.SystemException;
255    
256            /**
257            * Exports all layouts that match the primary keys and criteria as a file.
258            *
259            * @param groupId the primary key of the group
260            * @param privateLayout whether the layout is private to the group
261            * @param layoutIds the primary keys of the layouts to be exported
262            (optionally <code>null</code>)
263            * @param parameterMap the mapping of parameters indicating which
264            information to export. For information on the keys used in the
265            map see {@link
266            com.liferay.portal.kernel.lar.PortletDataHandlerKeys}.
267            * @param startDate the export's start date
268            * @param endDate the export's end date
269            * @return the layouts as a File
270            * @throws PortalException if a group or any layout with the primary key
271            could not be found, it the group did not have permission to
272            manage the layouts, or if some other portal exception occurred
273            * @throws SystemException if a system exception occurred
274            */
275            public java.io.File exportLayoutsAsFile(long groupId,
276                    boolean privateLayout, long[] layoutIds,
277                    java.util.Map<java.lang.String, java.lang.String[]> parameterMap,
278                    java.util.Date startDate, java.util.Date endDate)
279                    throws com.liferay.portal.kernel.exception.PortalException,
280                            com.liferay.portal.kernel.exception.SystemException;
281    
282            /**
283            * Exports the portlet information (categories, permissions, ... etc.) as a
284            * byte array.
285            *
286            * @param plid the primary key of the layout
287            * @param groupId the primary key of the group
288            * @param portletId the primary key of the portlet
289            * @param parameterMap the mapping of parameters indicating which
290            information to export. For information on the keys used in the
291            map see {@link
292            com.liferay.portal.kernel.lar.PortletDataHandlerKeys}.
293            * @param startDate the export's start date
294            * @param endDate the export's end date
295            * @return the portlet information as a byte array
296            * @throws PortalException if a layout, group, or portlet with the primary
297            key could not be found, if the group did not have permission to
298            manage the layouts involved, or if some other portal exception
299            occurred
300            * @throws SystemException if a system exception occurred
301            */
302            public byte[] exportPortletInfo(long plid, long groupId,
303                    java.lang.String portletId,
304                    java.util.Map<java.lang.String, java.lang.String[]> parameterMap,
305                    java.util.Date startDate, java.util.Date endDate)
306                    throws com.liferay.portal.kernel.exception.PortalException,
307                            com.liferay.portal.kernel.exception.SystemException;
308    
309            /**
310            * Exports the portlet information (categories, permissions, ... etc.) as a
311            * file.
312            *
313            * @param plid the primary key of the layout
314            * @param groupId the primary key of the group
315            * @param portletId the primary key of the portlet
316            * @param parameterMap the mapping of parameters indicating which
317            information to export. For information on the keys used in the
318            map see {@link
319            com.liferay.portal.kernel.lar.PortletDataHandlerKeys}.
320            * @param startDate the export's start date
321            * @param endDate the export's end date
322            * @return the portlet information as a file
323            * @throws PortalException if a layout, group, or portlet with the primary
324            key could not be found, it the group did not have permission to
325            manage the layouts involved, or if some other portal exception
326            occurred
327            * @throws SystemException if a system exception occurred
328            */
329            public java.io.File exportPortletInfoAsFile(long plid, long groupId,
330                    java.lang.String portletId,
331                    java.util.Map<java.lang.String, java.lang.String[]> parameterMap,
332                    java.util.Date startDate, java.util.Date endDate)
333                    throws com.liferay.portal.kernel.exception.PortalException,
334                            com.liferay.portal.kernel.exception.SystemException;
335    
336            /**
337            * Returns all the ancestor layouts of the layout.
338            *
339            * @param plid the primary key of the layout
340            * @return the ancestor layouts of the layout
341            * @throws PortalException if a matching layout could not be found or if a
342            portal exception occurred
343            * @throws SystemException if a system exception occurred
344            */
345            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
346            public java.util.List<com.liferay.portal.model.Layout> getAncestorLayouts(
347                    long plid)
348                    throws com.liferay.portal.kernel.exception.PortalException,
349                            com.liferay.portal.kernel.exception.SystemException;
350    
351            /**
352            * Returns the primary key of the default layout for the group.
353            *
354            * @param groupId the primary key of the group
355            * @param scopeGroupId the primary key of the scope group. See {@link
356            ServiceContext#getScopeGroupId()}.
357            * @param privateLayout whether the layout is private to the group
358            * @param portletId the primary key of the portlet
359            * @return Returns the primary key of the default layout group; {@link
360            com.liferay.portal.model.LayoutConstants#DEFAULT_PLID} otherwise
361            * @throws PortalException if a group, layout, or portlet with the primary
362            key could not be found
363            * @throws SystemException if a system exception occurred
364            */
365            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
366            public long getDefaultPlid(long groupId, long scopeGroupId,
367                    boolean privateLayout, java.lang.String portletId)
368                    throws com.liferay.portal.kernel.exception.PortalException,
369                            com.liferay.portal.kernel.exception.SystemException;
370    
371            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
372            public long getDefaultPlid(long groupId, long scopeGroupId,
373                    java.lang.String portletId)
374                    throws com.liferay.portal.kernel.exception.PortalException,
375                            com.liferay.portal.kernel.exception.SystemException;
376    
377            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
378            public com.liferay.portal.model.Layout getLayoutByUuidAndGroupId(
379                    java.lang.String uuid, long groupId, boolean privateLayout)
380                    throws com.liferay.portal.kernel.exception.PortalException,
381                            com.liferay.portal.kernel.exception.SystemException;
382    
383            /**
384            * Returns the name of the layout.
385            *
386            * @param groupId the primary key of the group
387            * @param privateLayout whether the layout is private to the group
388            * @param layoutId the primary key of the layout
389            * @param languageId the primary key of the language. For more information
390            See {@link java.util.Locale}.
391            * @return the layout's name
392            * @throws PortalException if a matching layout could not be found
393            * @throws SystemException if a system exception occurred
394            */
395            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
396            public java.lang.String getLayoutName(long groupId, boolean privateLayout,
397                    long layoutId, java.lang.String languageId)
398                    throws com.liferay.portal.kernel.exception.PortalException,
399                            com.liferay.portal.kernel.exception.SystemException;
400    
401            /**
402            * Returns the layout references for all the layouts that belong to the
403            * company and belong to the portlet that matches the preferences.
404            *
405            * @param companyId the primary key of the company
406            * @param portletId the primary key of the portlet
407            * @param preferencesKey the portlet's preference key
408            * @param preferencesValue the portlet's preference value
409            * @return the layout references of the matching layouts
410            * @throws SystemException if a system exception occurred
411            */
412            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
413            public com.liferay.portal.model.LayoutReference[] getLayoutReferences(
414                    long companyId, java.lang.String portletId,
415                    java.lang.String preferencesKey, java.lang.String preferencesValue)
416                    throws com.liferay.portal.kernel.exception.SystemException;
417    
418            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
419            public java.util.List<com.liferay.portal.model.Layout> getLayouts(
420                    long groupId, boolean privateLayout)
421                    throws com.liferay.portal.kernel.exception.SystemException;
422    
423            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
424            public java.util.List<com.liferay.portal.model.Layout> getLayouts(
425                    long groupId, boolean privateLayout, long parentLayoutId)
426                    throws com.liferay.portal.kernel.exception.SystemException;
427    
428            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
429            public java.util.List<com.liferay.portal.model.Layout> getLayouts(
430                    long groupId, boolean privateLayout, long parentLayoutId,
431                    boolean incomplete, int start, int end)
432                    throws com.liferay.portal.kernel.exception.PortalException,
433                            com.liferay.portal.kernel.exception.SystemException;
434    
435            /**
436            * Imports the layouts from the byte array.
437            *
438            * @param groupId the primary key of the group
439            * @param privateLayout whether the layout is private to the group
440            * @param parameterMap the mapping of parameters indicating which
441            information will be imported. For information on the keys used in
442            the map see {@link
443            com.liferay.portal.kernel.lar.PortletDataHandlerKeys}.
444            * @param bytes the byte array with the data
445            * @throws PortalException if a group with the primary key could not be
446            found, if the group did not have permission to manage the
447            layouts, or if some other portal exception occurred
448            * @throws SystemException if a system exception occurred
449            * @see com.liferay.portal.lar.LayoutImporter
450            */
451            public void importLayouts(long groupId, boolean privateLayout,
452                    java.util.Map<java.lang.String, java.lang.String[]> parameterMap,
453                    byte[] bytes)
454                    throws com.liferay.portal.kernel.exception.PortalException,
455                            com.liferay.portal.kernel.exception.SystemException;
456    
457            /**
458            * Imports the layouts from the file.
459            *
460            * @param groupId the primary key of the group
461            * @param privateLayout whether the layout is private to the group
462            * @param parameterMap the mapping of parameters indicating which
463            information will be imported. For information on the keys used in
464            the map see {@link
465            com.liferay.portal.kernel.lar.PortletDataHandlerKeys}.
466            * @param file the LAR file with the data
467            * @throws PortalException if a group with the primary key could not be
468            found, if the group did not have permission to manage the layouts
469            and publish, or if some other portal exception occurred
470            * @throws SystemException if a system exception occurred
471            * @see com.liferay.portal.lar.LayoutImporter
472            */
473            public void importLayouts(long groupId, boolean privateLayout,
474                    java.util.Map<java.lang.String, java.lang.String[]> parameterMap,
475                    java.io.File file)
476                    throws com.liferay.portal.kernel.exception.PortalException,
477                            com.liferay.portal.kernel.exception.SystemException;
478    
479            /**
480            * Imports the layouts from the input stream.
481            *
482            * @param groupId the primary key of the group
483            * @param privateLayout whether the layout is private to the group
484            * @param parameterMap the mapping of parameters indicating which
485            information will be imported. For information on the keys used in
486            the map see {@link
487            com.liferay.portal.kernel.lar.PortletDataHandlerKeys}.
488            * @param is the input stream
489            * @throws PortalException if a group with the primary key could not be
490            found, if the group did not have permission to manage the
491            layouts, or if some other portal exception occurred
492            * @throws SystemException if a system exception occurred
493            * @see com.liferay.portal.lar.LayoutImporter
494            */
495            public void importLayouts(long groupId, boolean privateLayout,
496                    java.util.Map<java.lang.String, java.lang.String[]> parameterMap,
497                    java.io.InputStream is)
498                    throws com.liferay.portal.kernel.exception.PortalException,
499                            com.liferay.portal.kernel.exception.SystemException;
500    
501            /**
502            * Imports the portlet information (categories, permissions, ... etc.) from
503            * the file.
504            *
505            * @param plid the primary key of the layout
506            * @param groupId the primary key of the group
507            * @param portletId the primary key of the portlet
508            * @param parameterMap the mapping of parameters indicating which
509            information will be imported. For information on the keys used in
510            the map see {@link
511            com.liferay.portal.kernel.lar.PortletDataHandlerKeys}.
512            * @param file the LAR file with the data
513            * @throws PortalException if a group, layout, or portlet with the primary
514            key could not be found, or if the group did not have permission
515            to manage the layouts
516            * @throws SystemException if a system exception occurred
517            */
518            public void importPortletInfo(long plid, long groupId,
519                    java.lang.String portletId,
520                    java.util.Map<java.lang.String, java.lang.String[]> parameterMap,
521                    java.io.File file)
522                    throws com.liferay.portal.kernel.exception.PortalException,
523                            com.liferay.portal.kernel.exception.SystemException;
524    
525            /**
526            * Imports the portlet information (categories, permissions, ... etc.) from
527            * the input stream.
528            *
529            * @param plid the primary key of the layout
530            * @param groupId the primary key of the group
531            * @param portletId the primary key of the portlet
532            * @param parameterMap the mapping of parameters indicating which
533            information will be imported. For information on the keys used in
534            the map see {@link
535            com.liferay.portal.kernel.lar.PortletDataHandlerKeys}.
536            * @param is the input stream
537            * @throws PortalException if a group, portlet, or layout with the primary
538            key could not be found or if the group did not have permission to
539            manage the layouts
540            * @throws SystemException if a system exception occurred
541            */
542            public void importPortletInfo(long plid, long groupId,
543                    java.lang.String portletId,
544                    java.util.Map<java.lang.String, java.lang.String[]> parameterMap,
545                    java.io.InputStream is)
546                    throws com.liferay.portal.kernel.exception.PortalException,
547                            com.liferay.portal.kernel.exception.SystemException;
548    
549            /**
550            * Schedules a range of layouts to be published.
551            *
552            * @param sourceGroupId the primary key of the source group
553            * @param targetGroupId the primary key of the target group
554            * @param privateLayout whether the layout is private to the group
555            * @param layoutIdMap the layouts considered for publishing, specified by
556            the layout IDs and booleans indicating whether they have children
557            * @param parameterMap the mapping of parameters indicating which
558            information will be used. See {@link
559            com.liferay.portal.kernel.lar.PortletDataHandlerKeys}
560            * @param scope the scope of the pages. It can be <code>all-pages</code> or
561            <code>selected-pages</code>.
562            * @param startDate the start date
563            * @param endDate the end date
564            * @param groupName the group name (optionally {@link
565            com.liferay.portal.kernel.messaging.DestinationNames#LAYOUTS_LOCAL_PUBLISHER}).
566            See {@link com.liferay.portal.kernel.messaging.DestinationNames}.
567            * @param cronText the cron text. See {@link
568            com.liferay.portal.kernel.cal.RecurrenceSerializer #toCronText}
569            * @param schedulerStartDate the scheduler start date
570            * @param schedulerEndDate the scheduler end date
571            * @param description the scheduler description
572            * @throws PortalException if the group did not have permission to manage
573            and publish
574            * @throws SystemException if a system exception occurred
575            */
576            public void schedulePublishToLive(long sourceGroupId, long targetGroupId,
577                    boolean privateLayout,
578                    java.util.Map<java.lang.Long, java.lang.Boolean> layoutIdMap,
579                    java.util.Map<java.lang.String, java.lang.String[]> parameterMap,
580                    java.lang.String scope, java.util.Date startDate,
581                    java.util.Date endDate, java.lang.String groupName,
582                    java.lang.String cronText, java.util.Date schedulerStartDate,
583                    java.util.Date schedulerEndDate, java.lang.String description)
584                    throws com.liferay.portal.kernel.exception.PortalException,
585                            com.liferay.portal.kernel.exception.SystemException;
586    
587            /**
588            * Schedules a range of layouts to be stored.
589            *
590            * @param sourceGroupId the primary key of the source group
591            * @param privateLayout whether the layout is private to the group
592            * @param layoutIdMap the layouts considered for publishing, specified by
593            the layout IDs and booleans indicating whether they have children
594            * @param parameterMap the mapping of parameters indicating which
595            information will be used. See {@link
596            com.liferay.portal.kernel.lar.PortletDataHandlerKeys}
597            * @param remoteAddress the remote address
598            * @param remotePort the remote port
599            * @param remotePathContext the remote path context
600            * @param secureConnection whether the connection is secure
601            * @param remoteGroupId the primary key of the remote group
602            * @param remotePrivateLayout whether remote group's layout is private
603            * @param startDate the start date
604            * @param endDate the end date
605            * @param groupName the group name. Optionally {@link
606            com.liferay.portal.kernel.messaging.DestinationNames#LAYOUTS_LOCAL_PUBLISHER}).
607            See {@link com.liferay.portal.kernel.messaging.DestinationNames}.
608            * @param cronText the cron text. See {@link
609            com.liferay.portal.kernel.cal.RecurrenceSerializer #toCronText}
610            * @param schedulerStartDate the scheduler start date
611            * @param schedulerEndDate the scheduler end date
612            * @param description the scheduler description
613            * @throws PortalException if a group with the source group primary key was
614            not found or if the group did not have permission to publish
615            * @throws SystemException if a system exception occurred
616            */
617            public void schedulePublishToRemote(long sourceGroupId,
618                    boolean privateLayout,
619                    java.util.Map<java.lang.Long, java.lang.Boolean> layoutIdMap,
620                    java.util.Map<java.lang.String, java.lang.String[]> parameterMap,
621                    java.lang.String remoteAddress, int remotePort,
622                    java.lang.String remotePathContext, boolean secureConnection,
623                    long remoteGroupId, boolean remotePrivateLayout,
624                    java.util.Date startDate, java.util.Date endDate,
625                    java.lang.String groupName, java.lang.String cronText,
626                    java.util.Date schedulerStartDate, java.util.Date schedulerEndDate,
627                    java.lang.String description)
628                    throws com.liferay.portal.kernel.exception.PortalException,
629                            com.liferay.portal.kernel.exception.SystemException;
630    
631            /**
632            * Sets the layouts for the group, replacing and prioritizing all layouts of
633            * the parent layout.
634            *
635            * @param groupId the primary key of the group
636            * @param privateLayout whether the layout is private to the group
637            * @param parentLayoutId the primary key of the parent layout
638            * @param layoutIds the primary keys of the layouts
639            * @param serviceContext the service context
640            * @throws PortalException if a group or layout with the primary key could
641            not be found, if the group did not have permission to manage the
642            layouts, if no layouts were specified, if the first layout was
643            not page-able, if the first layout was hidden, or if some other
644            portal exception occurred
645            * @throws SystemException if a system exception occurred
646            */
647            public void setLayouts(long groupId, boolean privateLayout,
648                    long parentLayoutId, long[] layoutIds,
649                    com.liferay.portal.service.ServiceContext serviceContext)
650                    throws com.liferay.portal.kernel.exception.PortalException,
651                            com.liferay.portal.kernel.exception.SystemException;
652    
653            /**
654            * Deletes the job from the scheduler's queue.
655            *
656            * @param groupId the primary key of the group
657            * @param jobName the job name
658            * @param groupName the group name (optionally {@link
659            com.liferay.portal.kernel.messaging.DestinationNames#LAYOUTS_LOCAL_PUBLISHER}).
660            See {@link com.liferay.portal.kernel.messaging.DestinationNames}.
661            * @throws PortalException if the group did not permission to manage staging
662            and publish
663            * @throws SystemException if a system exception occurred
664            */
665            public void unschedulePublishToLive(long groupId, java.lang.String jobName,
666                    java.lang.String groupName)
667                    throws com.liferay.portal.kernel.exception.PortalException,
668                            com.liferay.portal.kernel.exception.SystemException;
669    
670            /**
671            * Deletes the job from the scheduler's persistent queue.
672            *
673            * @param groupId the primary key of the group
674            * @param jobName the job name
675            * @param groupName the group name (optionally {@link
676            com.liferay.portal.kernel.messaging.DestinationNames#LAYOUTS_LOCAL_PUBLISHER}).
677            See {@link com.liferay.portal.kernel.messaging.DestinationNames}.
678            * @throws PortalException if a group with the primary key could not be
679            found or if the group did not have permission to publish
680            * @throws SystemException if a system exception occurred
681            */
682            public void unschedulePublishToRemote(long groupId,
683                    java.lang.String jobName, java.lang.String groupName)
684                    throws com.liferay.portal.kernel.exception.PortalException,
685                            com.liferay.portal.kernel.exception.SystemException;
686    
687            /**
688            * Updates the layout.
689            *
690            * @param groupId the primary key of the group
691            * @param privateLayout whether the layout is private to the group
692            * @param layoutId the primary key of the layout
693            * @param parentLayoutId the primary key of the layout's new parent layout
694            * @param localeNamesMap the layout's locales and localized names
695            * @param localeTitlesMap the layout's locales and localized titles
696            * @param descriptionMap the locales and localized descriptions to merge
697            (optionally <code>null</code>)
698            * @param keywordsMap the locales and localized keywords to merge
699            (optionally <code>null</code>)
700            * @param robotsMap the locales and localized robots to merge (optionally
701            <code>null</code>)
702            * @param type the layout's new type (optionally {@link
703            com.liferay.portal.model.LayoutConstants#TYPE_PORTLET})
704            * @param hidden whether the layout is hidden
705            * @param friendlyURL the layout's new friendly URL (optionally {@link
706            com.liferay.portal.util.PropsValues#DEFAULT_USER_PRIVATE_LAYOUT_FRIENDLY_URL}
707            or {@link
708            com.liferay.portal.util.PropsValues#DEFAULT_USER_PRIVATE_LAYOUT_FRIENDLY_URL}).
709            The default values can be overridden in
710            <code>portal-ext.properties</code> by specifying new values for
711            the corresponding properties defined in {@link
712            com.liferay.portal.util.PropsValues}. To see how the URL is
713            normalized when accessed see {@link
714            com.liferay.portal.kernel.util.FriendlyURLNormalizerUtil#normalize(
715            String)}.
716            * @param iconImage whether the icon image will be updated
717            * @param iconBytes the byte array of the layout's new icon image
718            * @param serviceContext the service context. Can set the modification date
719            and expando bridge attributes for the layout.
720            * @return the updated layout
721            * @throws PortalException if a group or layout with the primary key could
722            not be found, if the user did not have permission to update the
723            layout, if a unique friendly URL could not be generated, if a
724            valid parent layout ID to use could not be found, or if the
725            layout parameters were invalid
726            * @throws SystemException if a system exception occurred
727            */
728            public com.liferay.portal.model.Layout updateLayout(long groupId,
729                    boolean privateLayout, long layoutId, long parentLayoutId,
730                    java.util.Map<java.util.Locale, java.lang.String> localeNamesMap,
731                    java.util.Map<java.util.Locale, java.lang.String> localeTitlesMap,
732                    java.util.Map<java.util.Locale, java.lang.String> descriptionMap,
733                    java.util.Map<java.util.Locale, java.lang.String> keywordsMap,
734                    java.util.Map<java.util.Locale, java.lang.String> robotsMap,
735                    java.lang.String type, boolean hidden, java.lang.String friendlyURL,
736                    java.lang.Boolean iconImage, byte[] iconBytes,
737                    com.liferay.portal.service.ServiceContext serviceContext)
738                    throws com.liferay.portal.kernel.exception.PortalException,
739                            com.liferay.portal.kernel.exception.SystemException;
740    
741            /**
742            * Updates the layout replacing its type settings.
743            *
744            * @param groupId the primary key of the group
745            * @param privateLayout whether the layout is private to the group
746            * @param layoutId the primary key of the layout
747            * @param typeSettings the settings to load the unicode properties object.
748            See {@link com.liferay.portal.kernel.util.UnicodeProperties
749            #fastLoad(String)}.
750            * @return the updated layout
751            * @throws PortalException if a matching layout could not be found or if the
752            user did not have permission to update the layout
753            * @throws SystemException if a system exception occurred
754            */
755            public com.liferay.portal.model.Layout updateLayout(long groupId,
756                    boolean privateLayout, long layoutId, java.lang.String typeSettings)
757                    throws com.liferay.portal.kernel.exception.PortalException,
758                            com.liferay.portal.kernel.exception.SystemException;
759    
760            /**
761            * Updates the look and feel of the layout.
762            *
763            * @param groupId the primary key of the group
764            * @param privateLayout whether the layout is private to the group
765            * @param layoutId the primary key of the layout
766            * @param themeId the primary key of the layout's new theme
767            * @param colorSchemeId the primary key of the layout's new color scheme
768            * @param css the layout's new CSS
769            * @param wapTheme whether the theme is for WAP browsers
770            * @return the updated layout
771            * @throws PortalException if a matching layout could not be found, or if
772            the user did not have permission to update the layout and
773            permission to apply the theme
774            * @throws SystemException if a system exception occurred
775            */
776            public com.liferay.portal.model.Layout updateLookAndFeel(long groupId,
777                    boolean privateLayout, long layoutId, java.lang.String themeId,
778                    java.lang.String colorSchemeId, java.lang.String css, boolean wapTheme)
779                    throws com.liferay.portal.kernel.exception.PortalException,
780                            com.liferay.portal.kernel.exception.SystemException;
781    
782            /**
783            * Updates the name of the layout matching the group, layout ID, and
784            * privacy.
785            *
786            * @param groupId the primary key of the group
787            * @param privateLayout whether the layout is private to the group
788            * @param layoutId the primary key of the layout
789            * @param name the layout's new name
790            * @param languageId the primary key of the language. For more information
791            see {@link java.util.Locale}.
792            * @return the updated layout
793            * @throws PortalException if a matching layout could not be found, if the
794            user did not have permission to update the layout, or if the new
795            name was <code>null</code>
796            * @throws SystemException if a system exception occurred
797            */
798            public com.liferay.portal.model.Layout updateName(long groupId,
799                    boolean privateLayout, long layoutId, java.lang.String name,
800                    java.lang.String languageId)
801                    throws com.liferay.portal.kernel.exception.PortalException,
802                            com.liferay.portal.kernel.exception.SystemException;
803    
804            /**
805            * Updates the name of the layout matching the primary key.
806            *
807            * @param plid the primary key of the layout
808            * @param name the name to be assigned
809            * @param languageId the primary key of the language. For more information
810            see {@link java.util.Locale}.
811            * @return the updated layout
812            * @throws PortalException if a layout with the primary key could not be
813            found, or if the user did not have permission to update the
814            layout, or if the name was <code>null</code>
815            * @throws SystemException if a system exception occurred
816            */
817            public com.liferay.portal.model.Layout updateName(long plid,
818                    java.lang.String name, java.lang.String languageId)
819                    throws com.liferay.portal.kernel.exception.PortalException,
820                            com.liferay.portal.kernel.exception.SystemException;
821    
822            /**
823            * Updates the parent layout ID of the layout matching the group, layout ID,
824            * and privacy.
825            *
826            * @param groupId the primary key of the group
827            * @param privateLayout whether the layout is private to the group
828            * @param layoutId the primary key of the layout
829            * @param parentLayoutId the primary key to be assigned to the parent
830            layout
831            * @return the matching layout
832            * @throws PortalException if a valid parent layout ID to use could not be
833            found, if a matching layout could not be found, or if the user
834            did not have permission to update the layout
835            * @throws SystemException if a system exception occurred
836            */
837            public com.liferay.portal.model.Layout updateParentLayoutId(long groupId,
838                    boolean privateLayout, long layoutId, long parentLayoutId)
839                    throws com.liferay.portal.kernel.exception.PortalException,
840                            com.liferay.portal.kernel.exception.SystemException;
841    
842            /**
843            * Updates the parent layout ID of the layout matching the primary key. If a
844            * layout matching the parent primary key is found, the layout ID of that
845            * layout is assigned, otherwise {@link
846            * com.liferay.portal.model.LayoutConstants#DEFAULT_PARENT_LAYOUT_ID} is
847            * assigned.
848            *
849            * @param plid the primary key of the layout
850            * @param parentPlid the primary key of the parent layout
851            * @return the layout matching the primary key
852            * @throws PortalException if a layout with the primary key could not be
853            found, if the user did not have permission to update the layout,
854            or if a valid parent layout ID to use could not be found
855            * @throws SystemException if a system exception occurred
856            */
857            public com.liferay.portal.model.Layout updateParentLayoutId(long plid,
858                    long parentPlid)
859                    throws com.liferay.portal.kernel.exception.PortalException,
860                            com.liferay.portal.kernel.exception.SystemException;
861    
862            /**
863            * Updates the priority of the layout matching the group, layout ID, and
864            * privacy.
865            *
866            * @param groupId the primary key of the group
867            * @param privateLayout whether the layout is private to the group
868            * @param layoutId the primary key of the layout
869            * @param priority the layout's new priority
870            * @return the updated layout
871            * @throws PortalException if a matching layout could not be found or if the
872            user did not have permission to update the layout
873            * @throws SystemException if a system exception occurred
874            */
875            public com.liferay.portal.model.Layout updatePriority(long groupId,
876                    boolean privateLayout, long layoutId, int priority)
877                    throws com.liferay.portal.kernel.exception.PortalException,
878                            com.liferay.portal.kernel.exception.SystemException;
879    
880            /**
881            * Updates the priority of the layout matching the primary key.
882            *
883            * @param plid the primary key of the layout
884            * @param priority the layout's new priority
885            * @return the updated layout
886            * @throws PortalException if a layout with the primary key could not be
887            found
888            * @throws SystemException if a system exception occurred
889            */
890            public com.liferay.portal.model.Layout updatePriority(long plid,
891                    int priority)
892                    throws com.liferay.portal.kernel.exception.PortalException,
893                            com.liferay.portal.kernel.exception.SystemException;
894    }