001    /**
002     * Copyright (c) 2000-2012 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.transaction.Isolation;
020    import com.liferay.portal.kernel.transaction.Propagation;
021    import com.liferay.portal.kernel.transaction.Transactional;
022    
023    /**
024     * The interface for the layout local service.
025     *
026     * <p>
027     * This is a local service. Methods of this service will not have security checks based on the propagated JAAS credentials because this service can only be accessed from within the same VM.
028     * </p>
029     *
030     * @author Brian Wing Shun Chan
031     * @see LayoutLocalServiceUtil
032     * @see com.liferay.portal.service.base.LayoutLocalServiceBaseImpl
033     * @see com.liferay.portal.service.impl.LayoutLocalServiceImpl
034     * @generated
035     */
036    @Transactional(isolation = Isolation.PORTAL, rollbackFor =  {
037            PortalException.class, SystemException.class})
038    public interface LayoutLocalService extends BaseLocalService,
039            PersistedModelLocalService {
040            /*
041             * NOTE FOR DEVELOPERS:
042             *
043             * Never modify or reference this interface directly. Always use {@link LayoutLocalServiceUtil} to access the layout local service. Add custom service methods to {@link com.liferay.portal.service.impl.LayoutLocalServiceImpl} and rerun ServiceBuilder to automatically copy the method declarations to this interface.
044             */
045    
046            /**
047            * Adds the layout to the database. Also notifies the appropriate model listeners.
048            *
049            * @param layout the layout
050            * @return the layout that was added
051            * @throws SystemException if a system exception occurred
052            */
053            public com.liferay.portal.model.Layout addLayout(
054                    com.liferay.portal.model.Layout layout)
055                    throws com.liferay.portal.kernel.exception.SystemException;
056    
057            /**
058            * Creates a new layout with the primary key. Does not add the layout to the database.
059            *
060            * @param plid the primary key for the new layout
061            * @return the new layout
062            */
063            public com.liferay.portal.model.Layout createLayout(long plid);
064    
065            /**
066            * Deletes the layout with the primary key from the database. Also notifies the appropriate model listeners.
067            *
068            * @param plid the primary key of the layout
069            * @return the layout that was removed
070            * @throws PortalException if a layout with the primary key could not be found
071            * @throws SystemException if a system exception occurred
072            */
073            public com.liferay.portal.model.Layout deleteLayout(long plid)
074                    throws com.liferay.portal.kernel.exception.PortalException,
075                            com.liferay.portal.kernel.exception.SystemException;
076    
077            /**
078            * Deletes the layout from the database. Also notifies the appropriate model listeners.
079            *
080            * @param layout the layout
081            * @return the layout that was removed
082            * @throws SystemException if a system exception occurred
083            */
084            public com.liferay.portal.model.Layout deleteLayout(
085                    com.liferay.portal.model.Layout layout)
086                    throws com.liferay.portal.kernel.exception.SystemException;
087    
088            public com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery();
089    
090            /**
091            * Performs a dynamic query on the database and returns the matching rows.
092            *
093            * @param dynamicQuery the dynamic query
094            * @return the matching rows
095            * @throws SystemException if a system exception occurred
096            */
097            @SuppressWarnings("rawtypes")
098            public java.util.List dynamicQuery(
099                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery)
100                    throws com.liferay.portal.kernel.exception.SystemException;
101    
102            /**
103            * Performs a dynamic query on the database and returns a range of the matching rows.
104            *
105            * <p>
106            * 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.portal.model.impl.LayoutModelImpl}. 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.
107            * </p>
108            *
109            * @param dynamicQuery the dynamic query
110            * @param start the lower bound of the range of model instances
111            * @param end the upper bound of the range of model instances (not inclusive)
112            * @return the range of matching rows
113            * @throws SystemException if a system exception occurred
114            */
115            @SuppressWarnings("rawtypes")
116            public java.util.List dynamicQuery(
117                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery, int start,
118                    int end) throws com.liferay.portal.kernel.exception.SystemException;
119    
120            /**
121            * Performs a dynamic query on the database and returns an ordered range of the matching rows.
122            *
123            * <p>
124            * 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.portal.model.impl.LayoutModelImpl}. 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.
125            * </p>
126            *
127            * @param dynamicQuery the dynamic query
128            * @param start the lower bound of the range of model instances
129            * @param end the upper bound of the range of model instances (not inclusive)
130            * @param orderByComparator the comparator to order the results by (optionally <code>null</code>)
131            * @return the ordered range of matching rows
132            * @throws SystemException if a system exception occurred
133            */
134            @SuppressWarnings("rawtypes")
135            public java.util.List dynamicQuery(
136                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery, int start,
137                    int end,
138                    com.liferay.portal.kernel.util.OrderByComparator orderByComparator)
139                    throws com.liferay.portal.kernel.exception.SystemException;
140    
141            /**
142            * Returns the number of rows that match the dynamic query.
143            *
144            * @param dynamicQuery the dynamic query
145            * @return the number of rows that match the dynamic query
146            * @throws SystemException if a system exception occurred
147            */
148            public long dynamicQueryCount(
149                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery)
150                    throws com.liferay.portal.kernel.exception.SystemException;
151    
152            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
153            public com.liferay.portal.model.Layout fetchLayout(long plid)
154                    throws com.liferay.portal.kernel.exception.SystemException;
155    
156            /**
157            * Returns the layout with the primary key.
158            *
159            * @param plid the primary key of the layout
160            * @return the layout
161            * @throws PortalException if a layout with the primary key could not be found
162            * @throws SystemException if a system exception occurred
163            */
164            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
165            public com.liferay.portal.model.Layout getLayout(long plid)
166                    throws com.liferay.portal.kernel.exception.PortalException,
167                            com.liferay.portal.kernel.exception.SystemException;
168    
169            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
170            public com.liferay.portal.model.PersistedModel getPersistedModel(
171                    java.io.Serializable primaryKeyObj)
172                    throws com.liferay.portal.kernel.exception.PortalException,
173                            com.liferay.portal.kernel.exception.SystemException;
174    
175            /**
176            * Returns the layout with the UUID in the group.
177            *
178            * @param uuid the UUID of layout
179            * @param groupId the group id of the layout
180            * @return the layout
181            * @throws PortalException if a layout with the UUID in the group could not be found
182            * @throws SystemException if a system exception occurred
183            */
184            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
185            public com.liferay.portal.model.Layout getLayoutByUuidAndGroupId(
186                    java.lang.String uuid, long groupId)
187                    throws com.liferay.portal.kernel.exception.PortalException,
188                            com.liferay.portal.kernel.exception.SystemException;
189    
190            /**
191            * Returns a range of all the layouts.
192            *
193            * <p>
194            * 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.portal.model.impl.LayoutModelImpl}. 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.
195            * </p>
196            *
197            * @param start the lower bound of the range of layouts
198            * @param end the upper bound of the range of layouts (not inclusive)
199            * @return the range of layouts
200            * @throws SystemException if a system exception occurred
201            */
202            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
203            public java.util.List<com.liferay.portal.model.Layout> getLayouts(
204                    int start, int end)
205                    throws com.liferay.portal.kernel.exception.SystemException;
206    
207            /**
208            * Returns the number of layouts.
209            *
210            * @return the number of layouts
211            * @throws SystemException if a system exception occurred
212            */
213            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
214            public int getLayoutsCount()
215                    throws com.liferay.portal.kernel.exception.SystemException;
216    
217            /**
218            * Updates the layout in the database or adds it if it does not yet exist. Also notifies the appropriate model listeners.
219            *
220            * @param layout the layout
221            * @return the layout that was updated
222            * @throws SystemException if a system exception occurred
223            */
224            public com.liferay.portal.model.Layout updateLayout(
225                    com.liferay.portal.model.Layout layout)
226                    throws com.liferay.portal.kernel.exception.SystemException;
227    
228            /**
229            * Returns the Spring bean ID for this bean.
230            *
231            * @return the Spring bean ID for this bean
232            */
233            public java.lang.String getBeanIdentifier();
234    
235            /**
236            * Sets the Spring bean ID for this bean.
237            *
238            * @param beanIdentifier the Spring bean ID for this bean
239            */
240            public void setBeanIdentifier(java.lang.String beanIdentifier);
241    
242            /**
243            * Adds a layout with additional parameters.
244            *
245            * <p>
246            * This method handles the creation of the layout including its resources,
247            * metadata, and internal data structures. It is not necessary to make
248            * subsequent calls to any methods to setup default groups, resources, ...
249            * etc.
250            * </p>
251            *
252            * @param userId the primary key of the user
253            * @param groupId the primary key of the group
254            * @param privateLayout whether the layout is private to the group
255            * @param parentLayoutId the primary key of the parent layout (optionally
256            {@link
257            com.liferay.portal.model.LayoutConstants#DEFAULT_PARENT_LAYOUT_ID})
258            * @param nameMap the layout's locales and localized names
259            * @param titleMap the layout's locales and localized titles
260            * @param descriptionMap the layout's locales and localized descriptions
261            * @param keywordsMap the layout's locales and localized keywords
262            * @param robotsMap the layout's locales and localized robots
263            * @param type the layout's type (optionally {@link
264            com.liferay.portal.model.LayoutConstants#TYPE_PORTLET}). The
265            possible types can be found in {@link
266            com.liferay.portal.model.LayoutConstants}.
267            * @param hidden whether the layout is hidden
268            * @param friendlyURL the layout's friendly URL (optionally {@link
269            com.liferay.portal.util.PropsValues#DEFAULT_USER_PRIVATE_LAYOUT_FRIENDLY_URL}
270            or {@link
271            com.liferay.portal.util.PropsValues#DEFAULT_USER_PUBLIC_LAYOUT_FRIENDLY_URL}).
272            The default values can be overridden in
273            <code>portal-ext.properties</code> by specifying new values for
274            the corresponding properties defined in {@link
275            com.liferay.portal.util.PropsValues}. To see how the URL is
276            normalized when accessed see {@link
277            com.liferay.portal.kernel.util.FriendlyURLNormalizerUtil#normalize(
278            String)}.
279            * @param serviceContext the service context. Must set the universally
280            unique identifier (UUID) for the layout. Can set the creation
281            date, modification date and the expando bridge attributes for the
282            layout. For layouts that belong to a layout set prototype, an
283            attribute named 'layoutUpdateable' can be set to specify whether
284            site administrators can modify this page within their site. For
285            layouts that are created from a layout prototype, attributes
286            named 'layoutPrototypeUuid' and 'layoutPrototypeLinkedEnabled'
287            can be specified to provide the unique identifier of the source
288            prototype and a boolean to determined whether a link to it should
289            be enabled to activate propagation of changes made to the linked
290            page in the prototype.
291            * @return the layout
292            * @throws PortalException if a group or user with the primary key could not
293            be found, or if layout values were invalid
294            * @throws SystemException if a system exception occurred
295            */
296            public com.liferay.portal.model.Layout addLayout(long userId, long groupId,
297                    boolean privateLayout, long parentLayoutId,
298                    java.util.Map<java.util.Locale, java.lang.String> nameMap,
299                    java.util.Map<java.util.Locale, java.lang.String> titleMap,
300                    java.util.Map<java.util.Locale, java.lang.String> descriptionMap,
301                    java.util.Map<java.util.Locale, java.lang.String> keywordsMap,
302                    java.util.Map<java.util.Locale, java.lang.String> robotsMap,
303                    java.lang.String type, boolean hidden, java.lang.String friendlyURL,
304                    com.liferay.portal.service.ServiceContext serviceContext)
305                    throws com.liferay.portal.kernel.exception.PortalException,
306                            com.liferay.portal.kernel.exception.SystemException;
307    
308            /**
309            * Adds a layout.
310            *
311            * <p>
312            * This method handles the creation of the layout including its resources,
313            * metadata, and internal data structures. It is not necessary to make
314            * subsequent calls to any methods to setup default groups, resources, ...
315            * etc.
316            * </p>
317            *
318            * @param userId the primary key of the user
319            * @param groupId the primary key of the group
320            * @param privateLayout whether the layout is private to the group
321            * @param parentLayoutId the primary key of the parent layout (optionally
322            {@link
323            com.liferay.portal.model.LayoutConstants#DEFAULT_PARENT_LAYOUT_ID}).
324            The possible values can be found in {@link
325            com.liferay.portal.model.LayoutConstants}.
326            * @param name the layout's name (optionally {@link
327            com.liferay.portal.util.PropsValues#DEFAULT_USER_PRIVATE_LAYOUT_NAME}
328            or {@link
329            com.liferay.portal.util.PropsValues#DEFAULT_USER_PUBLIC_LAYOUT_NAME}).
330            The default values can be overridden in
331            <code>portal-ext.properties</code> by specifying new values for
332            the corresponding properties defined in {@link
333            com.liferay.portal.util.PropsValues}
334            * @param title the layout's title
335            * @param description the layout's description
336            * @param type the layout's type (optionally {@link
337            com.liferay.portal.model.LayoutConstants#TYPE_PORTLET}). The
338            possible types can be found in {@link
339            com.liferay.portal.model.LayoutConstants}.
340            * @param hidden whether the layout is hidden
341            * @param friendlyURL the friendly URL of the layout (optionally {@link
342            com.liferay.portal.util.PropsValues#DEFAULT_USER_PRIVATE_LAYOUT_FRIENDLY_URL}
343            or {@link
344            com.liferay.portal.util.PropsValues#DEFAULT_USER_PUBLIC_LAYOUT_FRIENDLY_URL}).
345            The default values can be overridden in
346            <code>portal-ext.properties</code> by specifying new values for
347            the corresponding properties defined in {@link
348            com.liferay.portal.util.PropsValues}. To see how the URL is
349            normalized when accessed see {@link
350            com.liferay.portal.kernel.util.FriendlyURLNormalizerUtil#normalize(
351            String)}.
352            * @param serviceContext the service context. Must set the universally
353            unique identifier (UUID) for the layout. Can set the creation
354            date and modification date for the layout. For layouts that
355            belong to a layout set prototype, an attribute named
356            'layoutUpdateable' can be set to specify whether site
357            administrators can modify this page within their site.
358            * @return the layout
359            * @throws PortalException if a group or user with the primary key could not
360            be found
361            * @throws SystemException if a system exception occurred
362            */
363            public com.liferay.portal.model.Layout addLayout(long userId, long groupId,
364                    boolean privateLayout, long parentLayoutId, java.lang.String name,
365                    java.lang.String title, java.lang.String description,
366                    java.lang.String type, boolean hidden, java.lang.String friendlyURL,
367                    com.liferay.portal.service.ServiceContext serviceContext)
368                    throws com.liferay.portal.kernel.exception.PortalException,
369                            com.liferay.portal.kernel.exception.SystemException;
370    
371            /**
372            * Deletes the layout, its child layouts, and its associated resources.
373            *
374            * @param layout the layout
375            * @param updateLayoutSet whether the layout set's page counter needs to be
376            updated
377            * @param serviceContext the service context
378            * @throws PortalException if a portal exception occurred
379            * @throws SystemException if a system exception occurred
380            */
381            public void deleteLayout(com.liferay.portal.model.Layout layout,
382                    boolean updateLayoutSet,
383                    com.liferay.portal.service.ServiceContext serviceContext)
384                    throws com.liferay.portal.kernel.exception.PortalException,
385                            com.liferay.portal.kernel.exception.SystemException;
386    
387            /**
388            * Deletes the layout with the primary key, also deleting the layout's child
389            * layouts, and associated resources.
390            *
391            * @param groupId the primary key of the group
392            * @param privateLayout whether the layout is private to the group
393            * @param layoutId the primary key of the layout
394            * @param serviceContext the service context
395            * @throws PortalException if a matching layout could not be found , or if
396            some other portal exception occurred
397            * @throws SystemException if a system exception occurred
398            */
399            public void deleteLayout(long groupId, boolean privateLayout,
400                    long layoutId, com.liferay.portal.service.ServiceContext serviceContext)
401                    throws com.liferay.portal.kernel.exception.PortalException,
402                            com.liferay.portal.kernel.exception.SystemException;
403    
404            /**
405            * Deletes the layout with the plid, also deleting the layout's child
406            * layouts, and associated resources.
407            *
408            * @param plid the primary key of the layout
409            * @param serviceContext the service context
410            * @throws PortalException if a layout with the primary key could not be
411            found , or if some other portal exception occurred
412            * @throws SystemException if a system exception occurred
413            */
414            public void deleteLayout(long plid,
415                    com.liferay.portal.service.ServiceContext serviceContext)
416                    throws com.liferay.portal.kernel.exception.PortalException,
417                            com.liferay.portal.kernel.exception.SystemException;
418    
419            /**
420            * Deletes the group's private or non-private layouts, also deleting the
421            * layouts' child layouts, and associated resources.
422            *
423            * @param groupId the primary key of the group
424            * @param privateLayout whether the layout is private to the group
425            * @param serviceContext the service context
426            * @throws PortalException if a group with the primary key could not be
427            found or if a layout set for the group and privacy could not be
428            found
429            * @throws SystemException if a system exception occurred
430            */
431            public void deleteLayouts(long groupId, boolean privateLayout,
432                    com.liferay.portal.service.ServiceContext serviceContext)
433                    throws com.liferay.portal.kernel.exception.PortalException,
434                            com.liferay.portal.kernel.exception.SystemException;
435    
436            /**
437            * Exports layouts with the primary keys and criteria as a byte array.
438            *
439            * @param groupId the primary key of the group
440            * @param privateLayout whether the layout is private to the group
441            * @param layoutIds the primary keys of the layouts to be exported
442            * @param parameterMap the mapping of parameters indicating which
443            information to export. For information on the keys used in the
444            map see {@link
445            com.liferay.portal.kernel.lar.PortletDataHandlerKeys}.
446            * @param startDate the export's start date
447            * @param endDate the export's end date
448            * @return the layouts as a byte array
449            * @throws PortalException if a group or any layout with the primary key
450            could not be found, or if some other portal exception occurred
451            * @throws SystemException if a system exception occurred
452            */
453            public byte[] exportLayouts(long groupId, boolean privateLayout,
454                    long[] layoutIds,
455                    java.util.Map<java.lang.String, java.lang.String[]> parameterMap,
456                    java.util.Date startDate, java.util.Date endDate)
457                    throws com.liferay.portal.kernel.exception.PortalException,
458                            com.liferay.portal.kernel.exception.SystemException;
459    
460            /**
461            * Exports all layouts that match the criteria as a byte array.
462            *
463            * @param groupId the primary key of the group
464            * @param privateLayout whether the layout is private to the group
465            * @param parameterMap the mapping of parameters indicating which
466            information to export. For information on the keys used in the
467            map see {@link
468            com.liferay.portal.kernel.lar.PortletDataHandlerKeys}.
469            * @param startDate the export's start date
470            * @param endDate the export's end date
471            * @return the layout as a byte array
472            * @throws PortalException if a group with the primary key could not be
473            found or if some other portal exception occurred
474            * @throws SystemException if a system exception occurred
475            */
476            public byte[] exportLayouts(long groupId, boolean privateLayout,
477                    java.util.Map<java.lang.String, java.lang.String[]> parameterMap,
478                    java.util.Date startDate, java.util.Date endDate)
479                    throws com.liferay.portal.kernel.exception.PortalException,
480                            com.liferay.portal.kernel.exception.SystemException;
481    
482            /**
483            * Exports the layouts that match the primary keys and criteria as a file.
484            *
485            * @param groupId the primary key of the group
486            * @param privateLayout whether the layout is private to the group
487            * @param layoutIds the primary keys of the layouts to be exported
488            (optionally <code>null</code>)
489            * @param parameterMap the mapping of parameters indicating which
490            information to export. For information on the keys used in the
491            map see {@link
492            com.liferay.portal.kernel.lar.PortletDataHandlerKeys}.
493            * @param startDate the export's start date
494            * @param endDate the export's end date
495            * @return the layouts as a File
496            * @throws PortalException if a group or any layout with the primary key
497            could not be found, or if some other portal exception occurred
498            * @throws SystemException if a system exception occurred
499            */
500            public java.io.File exportLayoutsAsFile(long groupId,
501                    boolean privateLayout, long[] layoutIds,
502                    java.util.Map<java.lang.String, java.lang.String[]> parameterMap,
503                    java.util.Date startDate, java.util.Date endDate)
504                    throws com.liferay.portal.kernel.exception.PortalException,
505                            com.liferay.portal.kernel.exception.SystemException;
506    
507            /**
508            * Exports the portlet information (categories, permissions, ... etc.) as a
509            * byte array.
510            *
511            * @param plid the primary key of the layout
512            * @param groupId the primary key of the group
513            * @param portletId the primary key of the portlet
514            * @param parameterMap the mapping of parameters indicating which
515            information to export. For information on the keys used in the
516            map see {@link
517            com.liferay.portal.kernel.lar.PortletDataHandlerKeys}.
518            * @param startDate the export's start date
519            * @param endDate the export's end date
520            * @return the portlet information as a byte array
521            * @throws PortalException if a group or portlet with the primary key could
522            not be found, or if some other portal exception occurred
523            * @throws SystemException if a system exception occurred
524            */
525            public byte[] exportPortletInfo(long plid, long groupId,
526                    java.lang.String portletId,
527                    java.util.Map<java.lang.String, java.lang.String[]> parameterMap,
528                    java.util.Date startDate, java.util.Date endDate)
529                    throws com.liferay.portal.kernel.exception.PortalException,
530                            com.liferay.portal.kernel.exception.SystemException;
531    
532            /**
533            * Exports the portlet information (categories, permissions, ... etc.) as a
534            * file.
535            *
536            * @param plid the primary key of the layout
537            * @param groupId the primary key of the group
538            * @param portletId the primary key of the portlet
539            * @param parameterMap the mapping of parameters indicating which
540            information to export. For information on the keys used in the
541            map see {@link
542            com.liferay.portal.kernel.lar.PortletDataHandlerKeys}.
543            * @param startDate the export's start date
544            * @param endDate the export's end date
545            * @return the portlet information as a file
546            * @throws PortalException if a group or portlet with the primary key could
547            not be found, or if some other portal exception occurred
548            * @throws SystemException if a system exception occurred
549            */
550            public java.io.File exportPortletInfoAsFile(long plid, long groupId,
551                    java.lang.String portletId,
552                    java.util.Map<java.lang.String, java.lang.String[]> parameterMap,
553                    java.util.Date startDate, java.util.Date endDate)
554                    throws com.liferay.portal.kernel.exception.PortalException,
555                            com.liferay.portal.kernel.exception.SystemException;
556    
557            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
558            public com.liferay.portal.model.Layout fetchFirstLayout(long groupId,
559                    boolean privateLayout, long parentLayoutId)
560                    throws com.liferay.portal.kernel.exception.SystemException;
561    
562            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
563            public com.liferay.portal.model.Layout fetchLayout(long groupId,
564                    boolean privateLayout, long layoutId)
565                    throws com.liferay.portal.kernel.exception.SystemException;
566    
567            /**
568            * Returns the layout matching the universally unique identifier and group
569            * ID
570            *
571            * @param uuid the universally unique identifier of the scope layout
572            * @param groupId the primary key of the group
573            * @return the layout, or <code>null</code> if a matching layout could not
574            be found
575            * @throws SystemException if a system exception occurred
576            */
577            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
578            public com.liferay.portal.model.Layout fetchLayoutByUuidAndGroupId(
579                    java.lang.String uuid, long groupId)
580                    throws com.liferay.portal.kernel.exception.SystemException;
581    
582            /**
583            * Returns the primary key of the default layout for the group
584            *
585            * @param groupId the primary key of the group
586            * @return the primary key of the default layout for the group (optionally
587            {@link com.liferay.portal.model.LayoutConstants#DEFAULT_PLID})
588            * @throws SystemException if a system exception occurred
589            */
590            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
591            public long getDefaultPlid(long groupId)
592                    throws com.liferay.portal.kernel.exception.SystemException;
593    
594            /**
595            * Returns primary key of the matching default layout for the group
596            *
597            * @param groupId the primary key of the group
598            * @param privateLayout whether the layout is private to the group
599            * @return the primary key of the default layout for the group; {@link
600            com.liferay.portal.model.LayoutConstants#DEFAULT_PLID}) otherwise
601            * @throws SystemException if a system exception occurred
602            */
603            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
604            public long getDefaultPlid(long groupId, boolean privateLayout)
605                    throws com.liferay.portal.kernel.exception.SystemException;
606    
607            /**
608            * Returns primary key of the default portlet layout for the group
609            *
610            * @param groupId the primary key of the group
611            * @param privateLayout whether the layout is private to the group
612            * @param portletId the primary key of the portlet
613            * @return the primary key of the default portlet layout for the group;
614            {@link com.liferay.portal.model.LayoutConstants#DEFAULT_PLID}
615            otherwise
616            * @throws PortalException if a portlet with the primary key could not be
617            found
618            * @throws SystemException if a system exception occurred
619            */
620            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
621            public long getDefaultPlid(long groupId, boolean privateLayout,
622                    java.lang.String portletId)
623                    throws com.liferay.portal.kernel.exception.PortalException,
624                            com.liferay.portal.kernel.exception.SystemException;
625    
626            /**
627            * Returns the layout for the friendly URL
628            *
629            * @param groupId the primary key of the group
630            * @param privateLayout whether the layout is private to the group
631            * @param friendlyURL the friendly URL of the layout
632            * @return the layout for the friendly URL
633            * @throws PortalException if the friendly URL is <code>null</code> or a
634            matching layout could not be found
635            * @throws SystemException if a system exception occurred
636            */
637            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
638            public com.liferay.portal.model.Layout getFriendlyURLLayout(long groupId,
639                    boolean privateLayout, java.lang.String friendlyURL)
640                    throws com.liferay.portal.kernel.exception.PortalException,
641                            com.liferay.portal.kernel.exception.SystemException;
642    
643            /**
644            * Returns the layout matching the primary key, group, and privacy; throws a
645            * {@link com.liferay.portal.NoSuchLayoutException} otherwise.
646            *
647            * @param groupId the primary key of the group
648            * @param privateLayout whether the layout is private to the group
649            * @param layoutId the primary key of the layout
650            * @return the matching layout
651            * @throws PortalException if a matching layout could not be found
652            * @throws SystemException if a system exception occurred
653            */
654            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
655            public com.liferay.portal.model.Layout getLayout(long groupId,
656                    boolean privateLayout, long layoutId)
657                    throws com.liferay.portal.kernel.exception.PortalException,
658                            com.liferay.portal.kernel.exception.SystemException;
659    
660            /**
661            * Returns the layout for the icon image; throws a {@link
662            * com.liferay.portal.NoSuchLayoutException} otherwise.
663            *
664            * @param iconImageId the primary key of the icon image
665            * @return Returns the layout for the icon image
666            * @throws PortalException if an icon image with the primary key could not
667            be found
668            * @throws SystemException if a system exception occurred
669            */
670            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
671            public com.liferay.portal.model.Layout getLayoutByIconImageId(
672                    long iconImageId)
673                    throws com.liferay.portal.kernel.exception.PortalException,
674                            com.liferay.portal.kernel.exception.SystemException;
675    
676            /**
677            * Returns all the layouts belonging to the group.
678            *
679            * @param groupId the primary key of the group
680            * @param privateLayout whether the layout is private to the group
681            * @return the matching layouts, or <code>null</code> if no matches were
682            found
683            * @throws SystemException if a system exception occurred
684            */
685            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
686            public java.util.List<com.liferay.portal.model.Layout> getLayouts(
687                    long groupId, boolean privateLayout)
688                    throws com.liferay.portal.kernel.exception.SystemException;
689    
690            /**
691            * Returns all the layouts belonging to the group that are children of the
692            * parent layout.
693            *
694            * @param groupId the primary key of the group
695            * @param privateLayout whether the layout is private to the group
696            * @param parentLayoutId the primary key of the parent layout
697            * @return the matching layouts, or <code>null</code> if no matches were
698            found
699            * @throws SystemException if a system exception occurred
700            */
701            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
702            public java.util.List<com.liferay.portal.model.Layout> getLayouts(
703                    long groupId, boolean privateLayout, long parentLayoutId)
704                    throws com.liferay.portal.kernel.exception.SystemException;
705    
706            /**
707            * Returns a range of all the layouts belonging to the group that are
708            * children of the parent layout.
709            *
710            * <p>
711            * Useful when paginating results. Returns a maximum of <code>end -
712            * start</code> instances. <code>start</code> and <code>end</code> are not
713            * primary keys, they are indexes in the result set. Thus, <code>0</code>
714            * refers to the first result in the set. Setting both <code>start</code>
715            * and <code>end</code> to {@link
716            * com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full
717            * result set.
718            * </p>
719            *
720            * @param groupId the primary key of the group
721            * @param privateLayout whether the layout is private to the group
722            * @param parentLayoutId the primary key of the parent layout
723            * @param incomplete whether the layout is incomplete
724            * @param start the lower bound of the range of layouts
725            * @param end the upper bound of the range of layouts (not inclusive)
726            * @return the matching layouts, or <code>null</code> if no matches were
727            found
728            * @throws SystemException if a system exception occurred
729            */
730            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
731            public java.util.List<com.liferay.portal.model.Layout> getLayouts(
732                    long groupId, boolean privateLayout, long parentLayoutId,
733                    boolean incomplete, int start, int end)
734                    throws com.liferay.portal.kernel.exception.SystemException;
735    
736            /**
737            * Returns all the layouts that match the layout IDs and belong to the
738            * group.
739            *
740            * @param groupId the primary key of the group
741            * @param privateLayout whether the layout is private to the group
742            * @param layoutIds the primary keys of the layouts
743            * @return the matching layouts, or <code>null</code> if no matches were
744            found
745            * @throws PortalException if a group or layout with the primary key could
746            not be found
747            * @throws SystemException if a system exception occurred
748            */
749            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
750            public java.util.List<com.liferay.portal.model.Layout> getLayouts(
751                    long groupId, boolean privateLayout, long[] layoutIds)
752                    throws com.liferay.portal.kernel.exception.PortalException,
753                            com.liferay.portal.kernel.exception.SystemException;
754    
755            /**
756            * Returns all the layouts that match the type and belong to the group.
757            *
758            * @param groupId the primary key of the group
759            * @param privateLayout whether the layout is private to the group
760            * @param type the type of the layouts (optionally {@link
761            com.liferay.portal.model.LayoutConstants#TYPE_PORTLET})
762            * @return the matching layouts, or <code>null</code> if no matches were
763            found
764            * @throws SystemException if a system exception occurred
765            */
766            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
767            public java.util.List<com.liferay.portal.model.Layout> getLayouts(
768                    long groupId, boolean privateLayout, java.lang.String type)
769                    throws com.liferay.portal.kernel.exception.SystemException;
770    
771            /**
772            * Returns the layout references for all the layouts that belong to the
773            * company and belong to the portlet that matches the preferences.
774            *
775            * @param companyId the primary key of the company
776            * @param portletId the primary key of the portlet
777            * @param preferencesKey the portlet's preference key
778            * @param preferencesValue the portlet's preference value
779            * @return the layout references of the matching layouts
780            * @throws SystemException if a system exception occurred
781            */
782            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
783            public com.liferay.portal.model.LayoutReference[] getLayouts(
784                    long companyId, java.lang.String portletId,
785                    java.lang.String preferencesKey, java.lang.String preferencesValue)
786                    throws com.liferay.portal.kernel.exception.SystemException;
787    
788            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
789            public int getLayoutsByLayoutPrototypeUuidCount(
790                    java.lang.String layoutPrototypeUuid)
791                    throws com.liferay.portal.kernel.exception.SystemException;
792    
793            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
794            public int getLayoutsCount(com.liferay.portal.model.Group group,
795                    boolean privateLayout)
796                    throws com.liferay.portal.kernel.exception.PortalException,
797                            com.liferay.portal.kernel.exception.SystemException;
798    
799            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
800            public int getLayoutsCount(com.liferay.portal.model.Group group,
801                    boolean privateLayout, boolean includeUserGroups)
802                    throws com.liferay.portal.kernel.exception.PortalException,
803                            com.liferay.portal.kernel.exception.SystemException;
804    
805            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
806            public int getLayoutsCount(com.liferay.portal.model.User user,
807                    boolean privateLayout)
808                    throws com.liferay.portal.kernel.exception.PortalException,
809                            com.liferay.portal.kernel.exception.SystemException;
810    
811            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
812            public int getLayoutsCount(com.liferay.portal.model.User user,
813                    boolean privateLayout, boolean includeUserGroups)
814                    throws com.liferay.portal.kernel.exception.PortalException,
815                            com.liferay.portal.kernel.exception.SystemException;
816    
817            /**
818            * Returns the primary key to use for the next layout.
819            *
820            * @param groupId the primary key of the group
821            * @param privateLayout whether the layout is private to the group
822            * @return the primary key to use for the next layout
823            * @throws SystemException if a system exception occurred
824            */
825            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
826            public long getNextLayoutId(long groupId, boolean privateLayout)
827                    throws com.liferay.portal.kernel.exception.SystemException;
828    
829            /**
830            * Returns all the layouts whose friendly URLs are <code>null</code>
831            *
832            * @return all the layouts whose friendly URLs are <code>null</code>
833            * @throws SystemException if a system exception occurred
834            */
835            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
836            public java.util.List<com.liferay.portal.model.Layout> getNullFriendlyURLLayouts()
837                    throws com.liferay.portal.kernel.exception.SystemException;
838    
839            /**
840            * Returns all the layouts within scope of the group
841            *
842            * @param groupId the primary key of the group
843            * @param privateLayout whether the layout is private to the group
844            * @return the layouts within scope of the group
845            * @throws SystemException if a system exception occurred
846            */
847            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
848            public java.util.List<com.liferay.portal.model.Layout> getScopeGroupLayouts(
849                    long groupId, boolean privateLayout)
850                    throws com.liferay.portal.kernel.exception.SystemException;
851    
852            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
853            public boolean hasLayouts(com.liferay.portal.model.Group group,
854                    boolean privateLayout)
855                    throws com.liferay.portal.kernel.exception.PortalException,
856                            com.liferay.portal.kernel.exception.SystemException;
857    
858            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
859            public boolean hasLayouts(com.liferay.portal.model.Group group,
860                    boolean privateLayout, boolean includeUserGroups)
861                    throws com.liferay.portal.kernel.exception.PortalException,
862                            com.liferay.portal.kernel.exception.SystemException;
863    
864            /**
865            * Returns <code>true</code> if the group has any layouts;
866            * <code>false</code> otherwise.
867            *
868            * @param groupId the primary key of the group
869            * @param privateLayout whether the layout is private to the group
870            * @param parentLayoutId the primary key of the parent layout
871            * @return <code>true</code> if the group has any layouts;
872            <code>false</code> otherwise
873            * @throws SystemException if a system exception occurred
874            */
875            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
876            public boolean hasLayouts(long groupId, boolean privateLayout,
877                    long parentLayoutId)
878                    throws com.liferay.portal.kernel.exception.SystemException;
879    
880            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
881            public boolean hasLayouts(com.liferay.portal.model.User user,
882                    boolean privateLayout)
883                    throws com.liferay.portal.kernel.exception.PortalException,
884                            com.liferay.portal.kernel.exception.SystemException;
885    
886            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
887            public boolean hasLayouts(com.liferay.portal.model.User user,
888                    boolean privateLayout, boolean includeUserGroups)
889                    throws com.liferay.portal.kernel.exception.PortalException,
890                            com.liferay.portal.kernel.exception.SystemException;
891    
892            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
893            public boolean hasLayoutSetPrototypeLayout(
894                    java.lang.String layoutSetPrototypeUuid, java.lang.String layoutUuid,
895                    long companyId)
896                    throws com.liferay.portal.kernel.exception.PortalException,
897                            com.liferay.portal.kernel.exception.SystemException;
898    
899            /**
900            * Imports the layouts from the byte array.
901            *
902            * @param userId the primary key of the user
903            * @param groupId the primary key of the group
904            * @param privateLayout whether the layout is private to the group
905            * @param parameterMap the mapping of parameters indicating which
906            information will be imported. For information on the keys used in
907            the map see {@link
908            com.liferay.portal.kernel.lar.PortletDataHandlerKeys}.
909            * @param bytes the byte array with the data
910            * @throws PortalException if a group or user with the primary key could not
911            be found, or if some other portal exception occurred
912            * @throws SystemException if a system exception occurred
913            * @see com.liferay.portal.lar.LayoutImporter
914            */
915            public void importLayouts(long userId, long groupId, boolean privateLayout,
916                    java.util.Map<java.lang.String, java.lang.String[]> parameterMap,
917                    byte[] bytes)
918                    throws com.liferay.portal.kernel.exception.PortalException,
919                            com.liferay.portal.kernel.exception.SystemException;
920    
921            /**
922            * Imports the layouts from the file.
923            *
924            * @param userId the primary key of the user
925            * @param groupId the primary key of the group
926            * @param privateLayout whether the layout is private to the group
927            * @param parameterMap the mapping of parameters indicating which
928            information will be imported. For information on the keys used in
929            the map see {@link
930            com.liferay.portal.kernel.lar.PortletDataHandlerKeys}.
931            * @param file the LAR file with the data
932            * @throws PortalException if a group or user with the primary key could not
933            be found, or if some other portal exception occurred
934            * @throws SystemException if a system exception occurred
935            * @see com.liferay.portal.lar.LayoutImporter
936            */
937            public void importLayouts(long userId, long groupId, boolean privateLayout,
938                    java.util.Map<java.lang.String, java.lang.String[]> parameterMap,
939                    java.io.File file)
940                    throws com.liferay.portal.kernel.exception.PortalException,
941                            com.liferay.portal.kernel.exception.SystemException;
942    
943            /**
944            * Imports the layouts from the input stream.
945            *
946            * @param userId the primary key of the user
947            * @param groupId the primary key of the group
948            * @param privateLayout whether the layout is private to the group
949            * @param parameterMap the mapping of parameters indicating which
950            information will be imported. For information on the keys used in
951            the map see {@link
952            com.liferay.portal.kernel.lar.PortletDataHandlerKeys}.
953            * @param is the input stream
954            * @throws PortalException if a group or user with the primary key could not
955            be found, or if some other portal exception occurred
956            * @throws SystemException if a system exception occurred
957            * @see com.liferay.portal.lar.LayoutImporter
958            */
959            public void importLayouts(long userId, long groupId, boolean privateLayout,
960                    java.util.Map<java.lang.String, java.lang.String[]> parameterMap,
961                    java.io.InputStream is)
962                    throws com.liferay.portal.kernel.exception.PortalException,
963                            com.liferay.portal.kernel.exception.SystemException;
964    
965            /**
966            * Imports the portlet information (categories, permissions, ... etc.) from
967            * the file.
968            *
969            * @param userId the primary key of the user
970            * @param plid the primary key of the target layout
971            * @param groupId the primary key of the target group
972            * @param portletId the primary key of the portlet
973            * @param parameterMap the mapping of parameters indicating which
974            information will be imported. For information on the keys used in
975            the map see {@link
976            com.liferay.portal.kernel.lar.PortletDataHandlerKeys}.
977            * @param file the LAR file with the data
978            * @throws PortalException if a group, layout, portlet or user with the
979            primary key could not be found
980            * @throws SystemException if a system exception occurred
981            */
982            public void importPortletInfo(long userId, long plid, long groupId,
983                    java.lang.String portletId,
984                    java.util.Map<java.lang.String, java.lang.String[]> parameterMap,
985                    java.io.File file)
986                    throws com.liferay.portal.kernel.exception.PortalException,
987                            com.liferay.portal.kernel.exception.SystemException;
988    
989            /**
990            * Imports the portlet information (categories, permissions, ... etc.) from
991            * the input stream.
992            *
993            * @param userId the primary key of the user
994            * @param plid the primary key of the layout
995            * @param groupId the primary key of the group
996            * @param portletId the primary key of the portlet
997            * @param parameterMap the mapping of parameters indicating which
998            information will be imported. For information on the keys used in
999            the map see {@link
1000            com.liferay.portal.kernel.lar.PortletDataHandlerKeys}.
1001            * @param is the input stream
1002            * @throws PortalException if a group, portlet, layout or user with the
1003            primary key could not be found
1004            * @throws SystemException if a system exception occurred
1005            */
1006            public void importPortletInfo(long userId, long plid, long groupId,
1007                    java.lang.String portletId,
1008                    java.util.Map<java.lang.String, java.lang.String[]> parameterMap,
1009                    java.io.InputStream is)
1010                    throws com.liferay.portal.kernel.exception.PortalException,
1011                            com.liferay.portal.kernel.exception.SystemException;
1012    
1013            /**
1014            * Sets the layouts for the group, replacing and prioritizing all layouts of
1015            * the parent layout.
1016            *
1017            * @param groupId the primary key of the group
1018            * @param privateLayout whether the layout is private to the group
1019            * @param parentLayoutId the primary key of the parent layout
1020            * @param layoutIds the primary keys of the layouts
1021            * @param serviceContext the service context
1022            * @throws PortalException if a group or layout with the primary key could
1023            not be found, if no layouts were specified, if the first layout
1024            was not page-able, if the first layout was hidden, or if some
1025            other portal exception occurred
1026            * @throws SystemException if a system exception occurred
1027            */
1028            public void setLayouts(long groupId, boolean privateLayout,
1029                    long parentLayoutId, long[] layoutIds,
1030                    com.liferay.portal.service.ServiceContext serviceContext)
1031                    throws com.liferay.portal.kernel.exception.PortalException,
1032                            com.liferay.portal.kernel.exception.SystemException;
1033    
1034            /**
1035            * Updates the friendly URL of the layout.
1036            *
1037            * @param plid the primary key of the layout
1038            * @param friendlyURL the friendly URL to be assigned
1039            * @return the updated layout
1040            * @throws PortalException if a group or layout with the primary key could
1041            not be found
1042            * @throws SystemException if a system exception occurred
1043            */
1044            public com.liferay.portal.model.Layout updateFriendlyURL(long plid,
1045                    java.lang.String friendlyURL)
1046                    throws com.liferay.portal.kernel.exception.PortalException,
1047                            com.liferay.portal.kernel.exception.SystemException;
1048    
1049            /**
1050            * Updates the layout.
1051            *
1052            * @param groupId the primary key of the group
1053            * @param privateLayout whether the layout is private to the group
1054            * @param layoutId the primary key of the layout
1055            * @param parentLayoutId the primary key of the layout's new parent layout
1056            * @param nameMap the locales and localized names to merge (optionally
1057            <code>null</code>)
1058            * @param titleMap the locales and localized titles to merge (optionally
1059            <code>null</code>)
1060            * @param descriptionMap the locales and localized descriptions to merge
1061            (optionally <code>null</code>)
1062            * @param keywordsMap the locales and localized keywords to merge
1063            (optionally <code>null</code>)
1064            * @param robotsMap the locales and localized robots to merge (optionally
1065            <code>null</code>)
1066            * @param type the layout's new type (optionally {@link
1067            com.liferay.portal.model.LayoutConstants#TYPE_PORTLET})
1068            * @param hidden whether the layout is hidden
1069            * @param friendlyURL the layout's new friendly URL (optionally {@link
1070            com.liferay.portal.util.PropsValues#DEFAULT_USER_PRIVATE_LAYOUT_FRIENDLY_URL}
1071            or {@link
1072            com.liferay.portal.util.PropsValues#DEFAULT_USER_PRIVATE_LAYOUT_FRIENDLY_URL}).
1073            The default values can be overridden in
1074            <code>portal-ext.properties</code> by specifying new values for
1075            the corresponding properties defined in {@link
1076            com.liferay.portal.util.PropsValues}. To see how the URL is
1077            normalized when accessed see {@link
1078            com.liferay.portal.kernel.util.FriendlyURLNormalizerUtil#normalize(
1079            String)}.
1080            * @param iconImage whether the icon image will be updated
1081            * @param iconBytes the byte array of the layout's new icon image
1082            * @param serviceContext the service context. Can set the modification date
1083            and expando bridge attributes for the layout. For layouts that
1084            are linked to a layout prototype, attributes named
1085            'layoutPrototypeUuid' and 'layoutPrototypeLinkedEnabled' can be
1086            specified to provide the unique identifier of the source
1087            prototype and a boolean to determined whether a link to it should
1088            be enabled to activate propagation of changes made to the linked
1089            page in the prototype.
1090            * @return the updated layout
1091            * @throws PortalException if a group or layout with the primary key could
1092            not be found, if a unique friendly URL could not be generated, if
1093            a valid parent layout ID to use could not be found, or if the
1094            layout parameters were invalid
1095            * @throws SystemException if a system exception occurred
1096            */
1097            public com.liferay.portal.model.Layout updateLayout(long groupId,
1098                    boolean privateLayout, long layoutId, long parentLayoutId,
1099                    java.util.Map<java.util.Locale, java.lang.String> nameMap,
1100                    java.util.Map<java.util.Locale, java.lang.String> titleMap,
1101                    java.util.Map<java.util.Locale, java.lang.String> descriptionMap,
1102                    java.util.Map<java.util.Locale, java.lang.String> keywordsMap,
1103                    java.util.Map<java.util.Locale, java.lang.String> robotsMap,
1104                    java.lang.String type, boolean hidden, java.lang.String friendlyURL,
1105                    java.lang.Boolean iconImage, byte[] iconBytes,
1106                    com.liferay.portal.service.ServiceContext serviceContext)
1107                    throws com.liferay.portal.kernel.exception.PortalException,
1108                            com.liferay.portal.kernel.exception.SystemException;
1109    
1110            /**
1111            * Updates the layout replacing its type settings.
1112            *
1113            * @param groupId the primary key of the group
1114            * @param privateLayout whether the layout is private to the group
1115            * @param layoutId the primary key of the layout
1116            * @param typeSettings the settings to load the unicode properties object.
1117            See {@link com.liferay.portal.kernel.util.UnicodeProperties
1118            #fastLoad(String)}.
1119            * @return the updated layout
1120            * @throws PortalException if a matching layout could not be found
1121            * @throws SystemException if a system exception occurred
1122            */
1123            public com.liferay.portal.model.Layout updateLayout(long groupId,
1124                    boolean privateLayout, long layoutId, java.lang.String typeSettings)
1125                    throws com.liferay.portal.kernel.exception.PortalException,
1126                            com.liferay.portal.kernel.exception.SystemException;
1127    
1128            /**
1129            * Updates the look and feel of the layout.
1130            *
1131            * @param groupId the primary key of the group
1132            * @param privateLayout whether the layout is private to the group
1133            * @param layoutId the primary key of the layout
1134            * @param themeId the primary key of the layout's new theme
1135            * @param colorSchemeId the primary key of the layout's new color scheme
1136            * @param css the layout's new CSS
1137            * @param wapTheme whether the theme is for WAP browsers
1138            * @return the updated layout
1139            * @throws PortalException if a matching layout could not be found
1140            * @throws SystemException if a system exception occurred
1141            */
1142            public com.liferay.portal.model.Layout updateLookAndFeel(long groupId,
1143                    boolean privateLayout, long layoutId, java.lang.String themeId,
1144                    java.lang.String colorSchemeId, java.lang.String css, boolean wapTheme)
1145                    throws com.liferay.portal.kernel.exception.PortalException,
1146                            com.liferay.portal.kernel.exception.SystemException;
1147    
1148            /**
1149            * Updates the name of the layout.
1150            *
1151            * @param layout the layout to be updated
1152            * @param name the layout's new name
1153            * @param languageId the primary key of the language. For more information
1154            see {@link java.util.Locale}.
1155            * @return the updated layout
1156            * @throws PortalException if the new name was <code>null</code>
1157            * @throws SystemException if a system exception occurred
1158            */
1159            public com.liferay.portal.model.Layout updateName(
1160                    com.liferay.portal.model.Layout layout, java.lang.String name,
1161                    java.lang.String languageId)
1162                    throws com.liferay.portal.kernel.exception.PortalException,
1163                            com.liferay.portal.kernel.exception.SystemException;
1164    
1165            /**
1166            * Updates the name of the layout matching the group, layout ID, and
1167            * privacy.
1168            *
1169            * @param groupId the primary key of the group
1170            * @param privateLayout whether the layout is private to the group
1171            * @param layoutId the primary key of the layout
1172            * @param name the layout's new name
1173            * @param languageId the primary key of the language. For more information
1174            see {@link java.util.Locale}.
1175            * @return the updated layout
1176            * @throws PortalException if a matching layout could not be found or if the
1177            new name was <code>null</code>
1178            * @throws SystemException if a system exception occurred
1179            */
1180            public com.liferay.portal.model.Layout updateName(long groupId,
1181                    boolean privateLayout, long layoutId, java.lang.String name,
1182                    java.lang.String languageId)
1183                    throws com.liferay.portal.kernel.exception.PortalException,
1184                            com.liferay.portal.kernel.exception.SystemException;
1185    
1186            /**
1187            * Updates the name of the layout matching the primary key.
1188            *
1189            * @param plid the primary key of the layout
1190            * @param name the name to be assigned
1191            * @param languageId the primary key of the language. For more information
1192            see {@link java.util.Locale}.
1193            * @return the updated layout
1194            * @throws PortalException if a layout with the primary key could not be
1195            found or if the name was <code>null</code>
1196            * @throws SystemException if a system exception occurred
1197            */
1198            public com.liferay.portal.model.Layout updateName(long plid,
1199                    java.lang.String name, java.lang.String languageId)
1200                    throws com.liferay.portal.kernel.exception.PortalException,
1201                            com.liferay.portal.kernel.exception.SystemException;
1202    
1203            /**
1204            * Updates the parent layout ID of the layout matching the group, layout ID,
1205            * and privacy.
1206            *
1207            * @param groupId the primary key of the group
1208            * @param privateLayout whether the layout is private to the group
1209            * @param layoutId the primary key of the layout
1210            * @param parentLayoutId the primary key to be assigned to the parent
1211            layout
1212            * @return the matching layout
1213            * @throws PortalException if a valid parent layout ID to use could not be
1214            found or if a matching layout could not be found
1215            * @throws SystemException if a system exception occurred
1216            */
1217            public com.liferay.portal.model.Layout updateParentLayoutId(long groupId,
1218                    boolean privateLayout, long layoutId, long parentLayoutId)
1219                    throws com.liferay.portal.kernel.exception.PortalException,
1220                            com.liferay.portal.kernel.exception.SystemException;
1221    
1222            /**
1223            * Updates the parent layout ID of the layout matching the primary key. If a
1224            * layout matching the parent primary key is found, the layout ID of that
1225            * layout is assigned, otherwise {@link
1226            * com.liferay.portal.model.LayoutConstants#DEFAULT_PARENT_LAYOUT_ID} is
1227            * assigned.
1228            *
1229            * @param plid the primary key of the layout
1230            * @param parentPlid the primary key of the parent layout
1231            * @return the layout matching the primary key
1232            * @throws PortalException if a layout with the primary key could not be
1233            found or if a valid parent layout ID to use could not be found
1234            * @throws SystemException if a system exception occurred
1235            */
1236            public com.liferay.portal.model.Layout updateParentLayoutId(long plid,
1237                    long parentPlid)
1238                    throws com.liferay.portal.kernel.exception.PortalException,
1239                            com.liferay.portal.kernel.exception.SystemException;
1240    
1241            /**
1242            * Updates the priorities of the layouts.
1243            *
1244            * @param groupId the primary key of the group
1245            * @param privateLayout whether the layout is private to the group
1246            * @throws PortalException if a matching layout could not be found
1247            * @throws SystemException if a system exception occurred
1248            */
1249            public void updatePriorities(long groupId, boolean privateLayout)
1250                    throws com.liferay.portal.kernel.exception.PortalException,
1251                            com.liferay.portal.kernel.exception.SystemException;
1252    
1253            /**
1254            * Updates the priority of the layout.
1255            *
1256            * @param layout the layout to be updated
1257            * @param priority the layout's new priority
1258            * @return the updated layout
1259            * @throws SystemException if a system exception occurred
1260            */
1261            public com.liferay.portal.model.Layout updatePriority(
1262                    com.liferay.portal.model.Layout layout, int priority)
1263                    throws com.liferay.portal.kernel.exception.SystemException;
1264    
1265            /**
1266            * Updates the priority of the layout matching the group, layout ID, and
1267            * privacy.
1268            *
1269            * @param groupId the primary key of the group
1270            * @param privateLayout whether the layout is private to the group
1271            * @param layoutId the primary key of the layout
1272            * @param priority the layout's new priority
1273            * @return the updated layout
1274            * @throws PortalException if a matching layout could not be found
1275            * @throws SystemException if a system exception occurred
1276            */
1277            public com.liferay.portal.model.Layout updatePriority(long groupId,
1278                    boolean privateLayout, long layoutId, int priority)
1279                    throws com.liferay.portal.kernel.exception.PortalException,
1280                            com.liferay.portal.kernel.exception.SystemException;
1281    
1282            /**
1283            * Updates the priority of the layout matching the primary key.
1284            *
1285            * @param plid the primary key of the layout
1286            * @param priority the layout's new priority
1287            * @return the updated layout
1288            * @throws PortalException if a layout with the primary key could not be
1289            found
1290            * @throws SystemException if a system exception occurred
1291            */
1292            public com.liferay.portal.model.Layout updatePriority(long plid,
1293                    int priority)
1294                    throws com.liferay.portal.kernel.exception.PortalException,
1295                            com.liferay.portal.kernel.exception.SystemException;
1296    
1297            public void updateScopedPortletNames(long groupId, boolean privateLayout,
1298                    long layoutId,
1299                    java.util.Map<java.util.Locale, java.lang.String> nameMap,
1300                    java.util.List<java.util.Locale> nameMapModifiedLocales)
1301                    throws com.liferay.portal.kernel.exception.PortalException,
1302                            com.liferay.portal.kernel.exception.SystemException;
1303    
1304            /**
1305            * Updates the names of the portlets within scope of the group, the scope of
1306            * the layout's universally unique identifier, and the privacy.
1307            *
1308            * @param groupId the primary key of the group
1309            * @param privateLayout whether the layout is private to the group
1310            * @param layoutId the primary key of the layout whose universally unique
1311            identifier to match
1312            * @param name the new name for the portlets
1313            * @param languageId the primary key of the language
1314            * @throws PortalException if a matching layout could not be found
1315            * @throws SystemException if a system exception occurred
1316            * @see com.liferay.portlet.portletconfiguration.action.EditScopeAction
1317            */
1318            public void updateScopedPortletNames(long groupId, boolean privateLayout,
1319                    long layoutId, java.lang.String name, java.lang.String languageId)
1320                    throws com.liferay.portal.kernel.exception.PortalException,
1321                            com.liferay.portal.kernel.exception.SystemException;
1322    }