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.util;
016    
017    import com.liferay.portal.kernel.exception.PortalException;
018    import com.liferay.portal.kernel.exception.SystemException;
019    import com.liferay.portal.kernel.portlet.LiferayPortletRequest;
020    import com.liferay.portal.kernel.portlet.LiferayPortletResponse;
021    import com.liferay.portal.kernel.servlet.taglib.ui.BreadcrumbEntry;
022    import com.liferay.portal.kernel.upload.UploadPortletRequest;
023    import com.liferay.portal.kernel.upload.UploadServletRequest;
024    import com.liferay.portal.model.BaseModel;
025    import com.liferay.portal.model.Company;
026    import com.liferay.portal.model.Group;
027    import com.liferay.portal.model.Layout;
028    import com.liferay.portal.model.LayoutFriendlyURLComposite;
029    import com.liferay.portal.model.LayoutQueryStringComposite;
030    import com.liferay.portal.model.LayoutSet;
031    import com.liferay.portal.model.Portlet;
032    import com.liferay.portal.model.ResourcePermission;
033    import com.liferay.portal.model.User;
034    import com.liferay.portal.theme.ThemeDisplay;
035    import com.liferay.portlet.expando.model.ExpandoBridge;
036    
037    import java.io.IOException;
038    import java.io.Serializable;
039    
040    import java.util.Date;
041    import java.util.List;
042    import java.util.Locale;
043    import java.util.Map;
044    import java.util.Properties;
045    import java.util.Set;
046    import java.util.TimeZone;
047    
048    import javax.portlet.ActionRequest;
049    import javax.portlet.ActionResponse;
050    import javax.portlet.PortletConfig;
051    import javax.portlet.PortletException;
052    import javax.portlet.PortletMode;
053    import javax.portlet.PortletPreferences;
054    import javax.portlet.PortletRequest;
055    import javax.portlet.PortletResponse;
056    import javax.portlet.PortletURL;
057    import javax.portlet.PreferencesValidator;
058    import javax.portlet.RenderRequest;
059    import javax.portlet.RenderResponse;
060    import javax.portlet.ValidatorException;
061    import javax.portlet.WindowState;
062    
063    import javax.servlet.ServletContext;
064    import javax.servlet.ServletException;
065    import javax.servlet.http.HttpServletRequest;
066    import javax.servlet.http.HttpServletResponse;
067    import javax.servlet.http.HttpSession;
068    import javax.servlet.jsp.PageContext;
069    
070    /**
071     * @author Brian Wing Shun Chan
072     * @author Eduardo Lundgren
073     */
074    public interface Portal {
075    
076            public static final String FRIENDLY_URL_SEPARATOR = "/-/";
077    
078            public static final String JSESSIONID = ";jsessionid=";
079    
080            public static final String PATH_IMAGE = "/image";
081    
082            public static final String PATH_MAIN = "/c";
083    
084            public static final String PATH_MODULE = "/o";
085    
086            public static final String PATH_PORTAL_LAYOUT = "/portal/layout";
087    
088            public static final String PORTAL_REALM = "PortalRealm";
089    
090            public static final String PORTLET_XML_FILE_NAME_CUSTOM =
091                    "portlet-custom.xml";
092    
093            public static final String PORTLET_XML_FILE_NAME_STANDARD = "portlet.xml";
094    
095            public static final String TEMP_OBFUSCATION_VALUE =
096                    "TEMP_OBFUSCATION_VALUE";
097    
098            /**
099             * Appends the description to the current meta description of the page.
100             *
101             * @param description the description to append to the current meta
102             *        description
103             * @param request the servlet request for the page
104             */
105            public void addPageDescription(
106                    String description, HttpServletRequest request);
107    
108            /**
109             * Appends the keywords to the current meta keywords of the page.
110             *
111             * @param keywords the keywords to add to the current meta keywords
112             *        (comma-separated)
113             * @param request the servlet request for the page
114             */
115            public void addPageKeywords(String keywords, HttpServletRequest request);
116    
117            /**
118             * Appends the subtitle to the current subtitle of the page.
119             *
120             * @param subtitle the subtitle to append to the current subtitle
121             * @param request the servlet request for the page
122             */
123            public void addPageSubtitle(String subtitle, HttpServletRequest request);
124    
125            /**
126             * Appends the title to the current title of the page.
127             *
128             * @param title the title to append to the current title
129             * @param request the servlet request for the page
130             */
131            public void addPageTitle(String title, HttpServletRequest request);
132    
133            /**
134             * Adds the portal port event listener to the portal. The listener will be
135             * notified whenever the portal port is set.
136             *
137             * @param portalPortEventListener the portal port event listener to add
138             */
139            public void addPortalPortEventListener(
140                    PortalPortEventListener portalPortEventListener);
141    
142            /**
143             * Adds the portal port and protocol event listener to the portal. The listener will be
144             * notified whenever the portal port and protocol is set.
145             *
146             * @param portalPortEventListener the portal port and protocol event listener to add
147             */
148            public void addPortalPortProtocolEventListener(
149                    PortalPortProtocolEventListener portalPortProtocolEventListener);
150    
151            /**
152             * Adds an entry to the portlet breadcrumbs for the page.
153             *
154             * @param request the servlet request for the page
155             * @param title the title of the new breakcrumb entry
156             * @param url the URL of the new breadcrumb entry
157             */
158            public void addPortletBreadcrumbEntry(
159                    HttpServletRequest request, String title, String url);
160    
161            /**
162             * Adds an entry to the portlet breadcrumbs for the page.
163             *
164             * @param request the servlet request for the page
165             * @param title the title of the new breakcrumb entry
166             * @param url the URL of the new breadcrumb entry
167             * @param data the HTML5 data parameters of the new breadcrumb entry
168             */
169            public void addPortletBreadcrumbEntry(
170                    HttpServletRequest request, String title, String url,
171                    Map<String, Object> data);
172    
173            /**
174             * Adds the default resource permissions for the portlet to the page.
175             *
176             * @param  request the servlet request for the page
177             * @param  portlet the portlet
178             * @throws PortalException if adding the default resource permissions failed
179             * @throws SystemException if a system exception occurred
180             */
181            public void addPortletDefaultResource(
182                            HttpServletRequest request, Portlet portlet)
183                    throws PortalException, SystemException;
184    
185            public void addPortletDefaultResource(
186                            long companyId, Layout layout, Portlet portlet)
187                    throws PortalException, SystemException;
188    
189            /**
190             * Adds the preserved parameters doAsGroupId and refererPlid to the URL,
191             * optionally adding doAsUserId and doAsUserLanguageId as well.
192             *
193             * <p>
194             * Preserved parameters are parameters that should be sent with every
195             * request as the user navigates the portal.
196             * </p>
197             *
198             * @param  themeDisplay the current theme display
199             * @param  layout the current layout
200             * @param  url the URL
201             * @param  doAsUser whether to include doAsUserId and doAsLanguageId in the
202             *         URL if they are available. If <code>false</code>, doAsUserId and
203             *         doAsUserLanguageId will never be added.
204             * @return the URL with the preserved parameters added
205             */
206            public String addPreservedParameters(
207                    ThemeDisplay themeDisplay, Layout layout, String url, boolean doAsUser);
208    
209            /**
210             * Adds the preserved parameters doAsUserId, doAsUserLanguageId,
211             * doAsGroupId, refererPlid, and controlPanelCategory to the URL.
212             *
213             * @param  themeDisplay the current theme display
214             * @param  url the URL
215             * @return the URL with the preserved parameters added
216             */
217            public String addPreservedParameters(ThemeDisplay themeDisplay, String url);
218    
219            public void addUserLocaleOptionsMessage(HttpServletRequest request);
220    
221            /**
222             * Clears the render parameters in the request if the portlet is in the
223             * action phase.
224             *
225             * @param renderRequest the render request
226             */
227            public void clearRequestParameters(RenderRequest renderRequest);
228    
229            /**
230             * Copies the request parameters to the render parameters, unless a
231             * parameter with that name already exists in the render parameters.
232             *
233             * @param actionRequest the request from which to get the request parameters
234             * @param actionResponse the response to receive the render parameters
235             */
236            public void copyRequestParameters(
237                    ActionRequest actionRequest, ActionResponse actionResponse);
238    
239            /**
240             * Escapes the URL for use in a redirect and checks that security settings
241             * allow the URL is allowed for redirects.
242             *
243             * @param  url the URL to escape
244             * @return the escaped URL, or <code>null</code> if the URL is not an
245             *         allowed for redirects
246             */
247            public String escapeRedirect(String url);
248    
249            /**
250             * Generates a random key to identify the request based on the input string.
251             *
252             * @param  request the servlet request for the page
253             * @param  input the input string
254             * @return the generated key
255             */
256            public String generateRandomKey(HttpServletRequest request, String input);
257    
258            public String getAbsoluteURL(HttpServletRequest request, String url);
259    
260            public LayoutQueryStringComposite getActualLayoutQueryStringComposite(
261                            long groupId, boolean privateLayout, String friendlyURL,
262                            Map<String, String[]> params, Map<String, Object> requestContext)
263                    throws PortalException, SystemException;
264    
265            public String getActualURL(
266                            long groupId, boolean privateLayout, String mainPath,
267                            String friendlyURL, Map<String, String[]> params,
268                            Map<String, Object> requestContext)
269                    throws PortalException, SystemException;
270    
271            /**
272             * Returns an array with the alternate locales, considering if the page is
273             * showing just a content and the translations of this content.
274             *
275             * @param      request the servlet request for the page
276             * @return     the array of alternate locales
277             * @throws     PortalException if a portal exception occurred
278             * @throws     SystemException if a system exception occurred
279             * @deprecated As of 6.2.0, replaced by {@link
280             *             com.liferay.portal.kernel.language.LanguageUtil#getAvailableLocales}
281             */
282            public Locale[] getAlternateLocales(HttpServletRequest request)
283                    throws PortalException, SystemException;
284    
285            /**
286             * Returns the alternate URL of the page, to distinguish it from its
287             * canonical URL.
288             *
289             * @param  canonicalURL the canonical URL previously obtained
290             * @param  themeDisplay the theme display
291             * @param  locale the locale of the translated page
292             * @param  layout the layout
293             * @return the alternate URL
294             * @throws PortalException if a portal exception occurred
295             * @throws SystemException if a system exception occurred
296             */
297            public String getAlternateURL(
298                            String canonicalURL, ThemeDisplay themeDisplay, Locale locale,
299                            Layout layout)
300                    throws PortalException, SystemException;
301    
302            /**
303             * Returns the set of struts actions that should not be checked for an
304             * authentication token.
305             *
306             * @return     the set of struts actions that should not be checked for an
307             *             authentication token
308             * @deprecated As of 6.2.0, replaced by {@link
309             *             com.liferay.portal.security.auth.AuthTokenWhitelistUtil#getPortletCSRFWhitelistActions}
310             */
311            public Set<String> getAuthTokenIgnoreActions();
312    
313            /**
314             * Returns the set of IDs of portlets that should not be checked for an
315             * authentication token.
316             *
317             * @return     the set of IDs of portlets that should not be checked for an
318             *             authentication token
319             * @deprecated As of 6.2.0, replaced by {@link
320             *             com.liferay.portal.security.auth.AuthTokenWhitelistUtil#getPortletCSRFWhitelist}
321             */
322            public Set<String> getAuthTokenIgnorePortlets();
323    
324            /**
325             * Returns the base model instance for the resource permission.
326             *
327             * @param  resourcePermission the resource permission
328             * @return the base model instance, or <code>null</code> if the resource
329             *         permission does not have a base model instance (such as if its a
330             *         portlet)
331             * @throws PortalException if a base model instance for the resource
332             *         permission could not be found
333             * @throws SystemException if a system exception occurred
334             */
335            public BaseModel<?> getBaseModel(ResourcePermission resourcePermission)
336                    throws PortalException, SystemException;
337    
338            /**
339             * Returns the base model instance for the model name and primary key.
340             *
341             * @param  modelName the fully qualified class name of the model
342             * @param  primKey the primary key of the model instance to get
343             * @return the base model instance, or <code>null</code> if the model does
344             *         not have a base model instance (such as if its a portlet)
345             * @throws PortalException if a base model instance with the primary key
346             *         could not be found
347             * @throws SystemException if a system exception occurred
348             */
349            public BaseModel<?> getBaseModel(String modelName, String primKey)
350                    throws PortalException, SystemException;
351    
352            /**
353             * Returns the user's ID from the HTTP authentication headers after
354             * validating their credentials.
355             *
356             * @param  request the servlet request from which to retrieve the HTTP
357             *         authentication headers
358             * @return the user's ID if HTTP authentication headers are present and
359             *         their credentials are valid; 0 otherwise
360             * @throws PortalException if an authentication exception occurred
361             * @throws SystemException if a system exception occurred
362             */
363            public long getBasicAuthUserId(HttpServletRequest request)
364                    throws PortalException, SystemException;
365    
366            /**
367             * Returns the user's ID from the HTTP authentication headers after
368             * validation their credentials.
369             *
370             * @param  request the servlet request to retrieve the HTTP authentication
371             *         headers from
372             * @param  companyId unused
373             * @return the user's ID if HTTP authentication headers are present and
374             *         their credentials are valid; 0 otherwise
375             * @throws PortalException if an authentication exception occurred
376             * @throws SystemException if a system exception occurred
377             */
378            public long getBasicAuthUserId(HttpServletRequest request, long companyId)
379                    throws PortalException, SystemException;
380    
381            /**
382             * Returns the canonical URL of the page, to distinguish it among its
383             * translations.
384             *
385             * @param  completeURL the complete URL of the page
386             * @param  themeDisplay the current theme display
387             * @param  layout the layout. If it is <code>null</code>, then it is
388             *         generated for the current layout
389             * @return the canonical URL
390             * @throws PortalException if a friendly URL or the group could not be
391             *         retrieved
392             * @throws SystemException if a system exception occurred
393             */
394            public String getCanonicalURL(
395                            String completeURL, ThemeDisplay themeDisplay, Layout layout)
396                    throws PortalException, SystemException;
397    
398            /**
399             * Returns the canonical URL of the page, to distinguish it among its
400             * translations.
401             *
402             * @param  completeURL the complete URL of the page
403             * @param  themeDisplay the current theme display
404             * @param  layout the layout. If it is <code>null</code>, then it is
405             *         generated for the current layout
406             * @param  forceLayoutFriendlyURL adds the page friendly URL to the
407             *         canonical URL even if it is not needed
408             * @return the canonical URL
409             * @throws PortalException if a friendly URL or the group could not be
410             *         retrieved
411             * @throws SystemException if a system exception occurred
412             */
413            public String getCanonicalURL(
414                            String completeURL, ThemeDisplay themeDisplay, Layout layout,
415                            boolean forceLayoutFriendlyURL)
416                    throws PortalException, SystemException;
417    
418            /**
419             * @deprecated As of 6.2.0, replaced by the more general {@link
420             *             #getCDNHost(boolean)}
421             */
422            public String getCDNHost();
423    
424            /**
425             * Returns the secure (HTTPS) or insecure (HTTP) content distribution
426             * network (CDN) host address for this portal.
427             *
428             * @param  secure whether to get the secure or insecure CDN host address
429             * @return the CDN host address
430             */
431            public String getCDNHost(boolean secure);
432    
433            public String getCDNHost(HttpServletRequest request)
434                    throws PortalException, SystemException;
435    
436            /**
437             * Returns the insecure (HTTP) content distribution network (CDN) host
438             * address
439             *
440             * @param  companyId the company ID of a site
441             * @return the CDN host address
442             */
443            public String getCDNHostHttp(long companyId);
444    
445            /**
446             * Returns the secure (HTTPS) content distribution network (CDN) host
447             * address
448             *
449             * @param  companyId the company ID of a site
450             * @return the CDN host address
451             */
452            public String getCDNHostHttps(long companyId);
453    
454            /**
455             * Returns the fully qualified name of the class from its ID.
456             *
457             * @param  classNameId the ID of the class
458             * @return the fully qualified name of the class
459             */
460            public String getClassName(long classNameId);
461    
462            /**
463             * Returns the ID of the class from its class object.
464             *
465             * @param  clazz the class object
466             * @return the ID of the class
467             */
468            public long getClassNameId(Class<?> clazz);
469    
470            /**
471             * Returns the ID of the class from its fully qualified name.
472             *
473             * @param  value the fully qualified name of the class
474             * @return the ID of the class
475             */
476            public long getClassNameId(String value);
477    
478            /**
479             * Returns the ID of certain portlets from the fully qualified name of one
480             * of their classes. The portlets this method supports are: blogs,
481             * bookmarks, calendar, document library, image gallery, journal, message
482             * boards, and wiki.
483             *
484             * @param  className the fully qualified name of a class in a portlet
485             * @return the ID of the portlet the class is a part of, or an empty string
486             *         if the class is not supported
487             */
488            public String getClassNamePortletId(String className);
489    
490            public Company getCompany(HttpServletRequest request)
491                    throws PortalException, SystemException;
492    
493            public Company getCompany(PortletRequest portletRequest)
494                    throws PortalException, SystemException;
495    
496            public long getCompanyId(HttpServletRequest requestuest);
497    
498            public long getCompanyId(PortletRequest portletRequest);
499    
500            public long[] getCompanyIds();
501    
502            public String getComputerAddress();
503    
504            public String getComputerName();
505    
506            public Map<String, List<Portlet>> getControlPanelCategoriesMap(
507                            HttpServletRequest request)
508                    throws SystemException;
509    
510            public String getControlPanelCategory(
511                            String portletId, ThemeDisplay themeDisplay)
512                    throws SystemException;
513    
514            public String getControlPanelFullURL(
515                            long scopeGroupId, String ppid, Map<String, String[]> params)
516                    throws PortalException, SystemException;
517    
518            public long getControlPanelPlid(long companyId)
519                    throws PortalException, SystemException;
520    
521            public long getControlPanelPlid(PortletRequest portletRequest)
522                    throws PortalException, SystemException;
523    
524            public Set<Portlet> getControlPanelPortlets(long companyId, String category)
525                    throws SystemException;
526    
527            public List<Portlet> getControlPanelPortlets(
528                            String category, ThemeDisplay themeDisplay)
529                    throws SystemException;
530    
531            public PortletURL getControlPanelPortletURL(
532                    HttpServletRequest request, String portletId, long referrerPlid,
533                    String lifecycle);
534    
535            public PortletURL getControlPanelPortletURL(
536                    PortletRequest portletRequest, String portletId, long referrerPlid,
537                    String lifecycle);
538    
539            public String getCreateAccountURL(
540                            HttpServletRequest request, ThemeDisplay themeDisplay)
541                    throws Exception;
542    
543            public String getCurrentCompleteURL(HttpServletRequest request);
544    
545            public String getCurrentURL(HttpServletRequest request);
546    
547            public String getCurrentURL(PortletRequest portletRequest);
548    
549            public String getCustomSQLFunctionIsNotNull();
550    
551            public String getCustomSQLFunctionIsNull();
552    
553            /**
554             * Returns the date object for the specified month, day, and year.
555             *
556             * @param  month the month (0-based, meaning 0 for January)
557             * @param  day the day of the month
558             * @param  year the year
559             * @return the date object
560             */
561            public Date getDate(int month, int day, int year);
562    
563            /**
564             * Returns the date object for the specified month, day, and year,
565             * optionally throwing an exception if the date is invalid.
566             *
567             * @param  month the month (0-based, meaning 0 for January)
568             * @param  day the day of the month
569             * @param  year the year
570             * @param  clazz the exception class to throw if the date is invalid. If
571             *         <code>null</code>, no exception will be thrown for an invalid
572             *         date.
573             * @return the date object, or <code>null</code> if the date is invalid and
574             *         no exception to throw was provided
575             * @throws PortalException if the date was invalid and <code>pe</code> was
576             *         not <code>null</code>
577             */
578            public Date getDate(
579                            int month, int day, int year,
580                            Class<? extends PortalException> clazz)
581                    throws PortalException;
582    
583            /**
584             * Returns the date object for the specified month, day, year, hour, and
585             * minute, optionally throwing an exception if the date is invalid.
586             *
587             * @param  month the month (0-based, meaning 0 for January)
588             * @param  day the day of the month
589             * @param  year the year
590             * @param  hour the hour (0-24)
591             * @param  min the minute of the hour
592             * @param  clazz the exception class to throw if the date is invalid. If
593             *         <code>null</code>, no exception will be thrown for an invalid
594             *         date.
595             * @return the date object, or <code>null</code> if the date is invalid and
596             *         no exception to throw was provided
597             * @throws PortalException if the date was invalid and <code>pe</code> was
598             *         not <code>null</code>
599             */
600            public Date getDate(
601                            int month, int day, int year, int hour, int min,
602                            Class<? extends PortalException> clazz)
603                    throws PortalException;
604    
605            /**
606             * Returns the date object for the specified month, day, year, hour, minute,
607             * and time zone, optionally throwing an exception if the date is invalid.
608             *
609             * @param  month the month (0-based, meaning 0 for January)
610             * @param  day the day of the month
611             * @param  year the year
612             * @param  hour the hour (0-24)
613             * @param  min the minute of the hour
614             * @param  timeZone the time zone of the date
615             * @param  clazz the exception class to throw if the date is invalid. If
616             *         <code>null</code>, no exception will be thrown for an invalid
617             *         date.
618             * @return the date object, or <code>null</code> if the date is invalid and
619             *         no exception to throw was provided
620             * @throws PortalException if the date was invalid and <code>pe</code> was
621             *         not <code>null</code>
622             */
623            public Date getDate(
624                            int month, int day, int year, int hour, int min, TimeZone timeZone,
625                            Class<? extends PortalException> clazz)
626                    throws PortalException;
627    
628            /**
629             * Returns the date object for the specified month, day, year, and time
630             * zone, optionally throwing an exception if the date is invalid.
631             *
632             * @param  month the month (0-based, meaning 0 for January)
633             * @param  day the day of the month
634             * @param  year the year
635             * @param  timeZone the time zone of the date
636             * @param  clazz the exception class to throw if the date is invalid. If
637             *         <code>null</code>, no exception will be thrown for an invalid
638             *         date.
639             * @return the date object, or <code>null</code> if the date is invalid and
640             *         no exception to throw was provided
641             * @throws PortalException if the date was invalid and <code>pe</code> was
642             *         not <code>null</code>
643             */
644            public Date getDate(
645                            int month, int day, int year, TimeZone timeZone,
646                            Class<? extends PortalException> clazz)
647                    throws PortalException;
648    
649            public long getDefaultCompanyId();
650    
651            public long getDigestAuthUserId(HttpServletRequest request)
652                    throws PortalException, SystemException;
653    
654            public String getDisplayURL(Group group, ThemeDisplay themeDisplay)
655                    throws PortalException;
656    
657            public String getDisplayURL(
658                            Group group, ThemeDisplay themeDisplay, boolean privateLayout)
659                    throws PortalException;
660    
661            public String getEmailFromAddress(
662                            PortletPreferences preferences, long companyId, String defaultValue)
663                    throws SystemException;
664    
665            public String getEmailFromName(
666                            PortletPreferences preferences, long companyId, String defaultValue)
667                    throws SystemException;
668    
669            public Map<String, Serializable> getExpandoBridgeAttributes(
670                            ExpandoBridge expandoBridge, HttpServletRequest request)
671                    throws PortalException, SystemException;
672    
673            public Map<String, Serializable> getExpandoBridgeAttributes(
674                            ExpandoBridge expandoBridge, PortletRequest portletRequest)
675                    throws PortalException, SystemException;
676    
677            public Map<String, Serializable> getExpandoBridgeAttributes(
678                            ExpandoBridge expandoBridge,
679                            UploadPortletRequest uploadPortletRequest)
680                    throws PortalException, SystemException;
681    
682            public Serializable getExpandoValue(
683                            HttpServletRequest request, String name, int type,
684                            String displayType)
685                    throws PortalException, SystemException;
686    
687            public Serializable getExpandoValue(
688                            PortletRequest portletRequest, String name, int type,
689                            String displayType)
690                    throws PortalException, SystemException;
691    
692            public Serializable getExpandoValue(
693                            UploadPortletRequest uploadPortletRequest, String name, int type,
694                            String displayType)
695                    throws PortalException, SystemException;
696    
697            public String getFacebookURL(
698                            Portlet portlet, String facebookCanvasPageURL,
699                            ThemeDisplay themeDisplay)
700                    throws PortalException, SystemException;
701    
702            public Portlet getFirstMyAccountPortlet(ThemeDisplay themeDisplay)
703                    throws SystemException;
704    
705            public String getFirstPageLayoutTypes(PageContext pageContext);
706    
707            public Portlet getFirstSiteAdministrationPortlet(ThemeDisplay themeDisplay)
708                    throws SystemException;
709    
710            public String getFullName(
711                    String firstName, String middleName, String lastName);
712    
713            public String getGlobalLibDir();
714    
715            public String getGoogleGadgetURL(Portlet portlet, ThemeDisplay themeDisplay)
716                    throws PortalException, SystemException;
717    
718            public String getGroupFriendlyURL(
719                            Group group, boolean privateLayoutSet, ThemeDisplay themeDisplay)
720                    throws PortalException, SystemException;
721    
722            public String getGroupFriendlyURL(
723                            Group group, boolean privateLayoutSet, ThemeDisplay themeDisplay,
724                            Locale locale)
725                    throws PortalException, SystemException;
726    
727            public int[] getGroupFriendlyURLIndex(String requestURI);
728    
729            public String[] getGroupPermissions(HttpServletRequest request);
730    
731            public String[] getGroupPermissions(
732                    HttpServletRequest request, String className);
733    
734            public String[] getGroupPermissions(PortletRequest portletRequest);
735    
736            public String[] getGroupPermissions(
737                    PortletRequest portletRequest, String className);
738    
739            public String[] getGuestPermissions(HttpServletRequest request);
740    
741            public String[] getGuestPermissions(
742                    HttpServletRequest request, String className);
743    
744            public String[] getGuestPermissions(PortletRequest portletRequest);
745    
746            public String[] getGuestPermissions(
747                    PortletRequest portletRequest, String className);
748    
749            public String getHomeURL(HttpServletRequest request)
750                    throws PortalException, SystemException;
751    
752            public String getHost(HttpServletRequest request);
753    
754            public String getHost(PortletRequest portletRequest);
755    
756            public HttpServletRequest getHttpServletRequest(
757                    PortletRequest portletRequest);
758    
759            public HttpServletResponse getHttpServletResponse(
760                    PortletResponse portletResponse);
761    
762            public String getI18nPathLanguageId(
763                    Locale locale, String defaultI18nPathLanguageId);
764    
765            public String getJournalArticleActualURL(
766                            long groupId, boolean privateLayout, String mainPath,
767                            String friendlyURL, Map<String, String[]> params,
768                            Map<String, Object> requestContext)
769                    throws PortalException, SystemException;
770    
771            public Layout getJournalArticleLayout(
772                            long groupId, boolean privateLayout, String friendlyURL)
773                    throws PortalException, SystemException;
774    
775            public String getJsSafePortletId(String portletId);
776    
777            public String getLayoutActualURL(Layout layout);
778    
779            public String getLayoutActualURL(Layout layout, String mainPath);
780    
781            public String getLayoutActualURL(
782                            long groupId, boolean privateLayout, String mainPath,
783                            String friendlyURL)
784                    throws PortalException, SystemException;
785    
786            public String getLayoutActualURL(
787                            long groupId, boolean privateLayout, String mainPath,
788                            String friendlyURL, Map<String, String[]> params,
789                            Map<String, Object> requestContext)
790                    throws PortalException, SystemException;
791    
792            public String getLayoutEditPage(Layout layout);
793    
794            public String getLayoutEditPage(String type);
795    
796            public String getLayoutFriendlyURL(Layout layout, ThemeDisplay themeDisplay)
797                    throws PortalException, SystemException;
798    
799            public String getLayoutFriendlyURL(
800                            Layout layout, ThemeDisplay themeDisplay, Locale locale)
801                    throws PortalException, SystemException;
802    
803            public LayoutFriendlyURLComposite getLayoutFriendlyURLComposite(
804                            long groupId, boolean privateLayout, String friendlyURL,
805                            Map<String, String[]> params, Map<String, Object> requestContext)
806                    throws PortalException, SystemException;
807    
808            public String getLayoutFullURL(Layout layout, ThemeDisplay themeDisplay)
809                    throws PortalException, SystemException;
810    
811            public String getLayoutFullURL(
812                            Layout layout, ThemeDisplay themeDisplay, boolean doAsUser)
813                    throws PortalException, SystemException;
814    
815            public String getLayoutFullURL(long groupId, String portletId)
816                    throws PortalException, SystemException;
817    
818            public String getLayoutFullURL(
819                            long groupId, String portletId, boolean secure)
820                    throws PortalException, SystemException;
821    
822            public String getLayoutFullURL(ThemeDisplay themeDisplay)
823                    throws PortalException, SystemException;
824    
825            public String getLayoutSetFriendlyURL(
826                            LayoutSet layoutSet, ThemeDisplay themeDisplay)
827                    throws PortalException, SystemException;
828    
829            public String getLayoutTarget(Layout layout);
830    
831            public String getLayoutURL(Layout layout, ThemeDisplay themeDisplay)
832                    throws PortalException, SystemException;
833    
834            public String getLayoutURL(
835                            Layout layout, ThemeDisplay themeDisplay, boolean doAsUser)
836                    throws PortalException, SystemException;
837    
838            public String getLayoutURL(
839                            Layout layout, ThemeDisplay themeDisplay, Locale locale)
840                    throws PortalException, SystemException;
841    
842            public String getLayoutURL(ThemeDisplay themeDisplay)
843                    throws PortalException, SystemException;
844    
845            public String getLayoutViewPage(Layout layout);
846    
847            public String getLayoutViewPage(String type);
848    
849            public LiferayPortletRequest getLiferayPortletRequest(
850                    PortletRequest portletRequest);
851    
852            public LiferayPortletResponse getLiferayPortletResponse(
853                    PortletResponse portletResponse);
854    
855            public Locale getLocale(HttpServletRequest request);
856    
857            public Locale getLocale(
858                    HttpServletRequest request, HttpServletResponse response,
859                    boolean initialize);
860    
861            public Locale getLocale(PortletRequest portletRequest);
862    
863            public String getLocalizedFriendlyURL(
864                            HttpServletRequest request, Layout layout, Locale locale,
865                            Locale originalLocale)
866                    throws Exception;
867    
868            public String getMailId(String mx, String popPortletPrefix, Object... ids);
869    
870            public String getNetvibesURL(Portlet portlet, ThemeDisplay themeDisplay)
871                    throws PortalException, SystemException;
872    
873            public String getNewPortletTitle(
874                    String portletTitle, String oldScopeName, String newScopeName);
875    
876            public HttpServletRequest getOriginalServletRequest(
877                    HttpServletRequest request);
878    
879            /**
880             * @deprecated As of 6.2.0 renamed to {@link #getSiteGroupId(long)}
881             */
882            public long getParentGroupId(long scopeGroupId)
883                    throws PortalException, SystemException;
884    
885            public String getPathContext();
886    
887            public String getPathContext(HttpServletRequest request);
888    
889            public String getPathContext(PortletRequest portletRequest);
890    
891            public String getPathContext(String contextPath);
892    
893            public String getPathFriendlyURLPrivateGroup();
894    
895            public String getPathFriendlyURLPrivateUser();
896    
897            public String getPathFriendlyURLPublic();
898    
899            public String getPathImage();
900    
901            public String getPathMain();
902    
903            public String getPathModule();
904    
905            public String getPathProxy();
906    
907            public long getPlidFromFriendlyURL(long companyId, String friendlyURL);
908    
909            public long getPlidFromPortletId(
910                            long groupId, boolean privateLayout, String portletId)
911                    throws PortalException, SystemException;
912    
913            public long getPlidFromPortletId(long groupId, String portletId)
914                    throws PortalException, SystemException;
915    
916            public String getPortalLibDir();
917    
918            /**
919             * @deprecated As of 6.2.0, replaced by the more general {@link
920             *             #getPortalPort(boolean)}
921             */
922            public int getPortalPort();
923    
924            public int getPortalPort(boolean secure);
925    
926            public Properties getPortalProperties();
927    
928            public String getPortalURL(HttpServletRequest request);
929    
930            public String getPortalURL(HttpServletRequest request, boolean secure);
931    
932            public String getPortalURL(Layout layout, ThemeDisplay themeDisplay)
933                    throws PortalException, SystemException;
934    
935            public String getPortalURL(PortletRequest portletRequest);
936    
937            public String getPortalURL(PortletRequest portletRequest, boolean secure);
938    
939            public String getPortalURL(
940                    String serverName, int serverPort, boolean secure);
941    
942            public String getPortalURL(ThemeDisplay themeDisplay)
943                    throws PortalException, SystemException;
944    
945            public String getPortalWebDir();
946    
947            /**
948             * @deprecated As of 6.2.0, replaced by {@link
949             *             com.liferay.portal.security.auth.AuthTokenWhitelistUtil#getPortletInvocationWhitelist}
950             */
951            public Set<String> getPortletAddDefaultResourceCheckWhitelist();
952    
953            /**
954             * @deprecated As of 6.2.0, replaced by {@link
955             *             com.liferay.portal.security.auth.AuthTokenWhitelistUtil#getPortletInvocationWhitelistActions}
956             */
957            public Set<String> getPortletAddDefaultResourceCheckWhitelistActions();
958    
959            /**
960             * @deprecated As of 6.2.0, replaced by {@link
961             *             #getPortletBreadcrumbs(HttpServletRequest)}
962             */
963            public List<BreadcrumbEntry> getPortletBreadcrumbList(
964                    HttpServletRequest request);
965    
966            public List<BreadcrumbEntry> getPortletBreadcrumbs(
967                    HttpServletRequest request);
968    
969            public PortletConfig getPortletConfig(
970                            long companyId, String portletId, ServletContext servletContext)
971                    throws PortletException, SystemException;
972    
973            public String getPortletDescription(
974                    Portlet portlet, ServletContext servletContext, Locale locale);
975    
976            public String getPortletDescription(Portlet portlet, User user);
977    
978            public String getPortletDescription(String portletId, Locale locale);
979    
980            public String getPortletDescription(String portletId, String languageId);
981    
982            public String getPortletDescription(String portletId, User user);
983    
984            public String getPortletId(HttpServletRequest request);
985    
986            public String getPortletId(PortletRequest portletRequest);
987    
988            public String getPortletLongTitle(Portlet portlet, Locale locale);
989    
990            public String getPortletLongTitle(
991                    Portlet portlet, ServletContext servletContext, Locale locale);
992    
993            public String getPortletLongTitle(Portlet portlet, String languageId);
994    
995            public String getPortletLongTitle(Portlet portlet, User user);
996    
997            public String getPortletLongTitle(String portletId, Locale locale);
998    
999            public String getPortletLongTitle(String portletId, String languageId);
1000    
1001            public String getPortletLongTitle(String portletId, User user);
1002    
1003            public String getPortletNamespace(String portletId);
1004    
1005            public String getPortletTitle(Portlet portlet, Locale locale);
1006    
1007            public String getPortletTitle(
1008                    Portlet portlet, ServletContext servletContext, Locale locale);
1009    
1010            public String getPortletTitle(Portlet portlet, String languageId);
1011    
1012            public String getPortletTitle(Portlet portlet, User user);
1013    
1014            public String getPortletTitle(RenderRequest renderRequest);
1015    
1016            public String getPortletTitle(RenderResponse renderResponse);
1017    
1018            public String getPortletTitle(String portletId, Locale locale);
1019    
1020            public String getPortletTitle(String portletId, String languageId);
1021    
1022            public String getPortletTitle(String portletId, User user);
1023    
1024            public String getPortletXmlFileName() throws SystemException;
1025    
1026            public PortletPreferences getPreferences(HttpServletRequest request);
1027    
1028            public PreferencesValidator getPreferencesValidator(Portlet portlet);
1029    
1030            public String getRelativeHomeURL(HttpServletRequest request)
1031                    throws PortalException, SystemException;
1032    
1033            public long getScopeGroupId(HttpServletRequest request)
1034                    throws PortalException, SystemException;
1035    
1036            public long getScopeGroupId(HttpServletRequest request, String portletId)
1037                    throws PortalException, SystemException;
1038    
1039            public long getScopeGroupId(
1040                            HttpServletRequest request, String portletId,
1041                            boolean checkStagingGroup)
1042                    throws PortalException, SystemException;
1043    
1044            public long getScopeGroupId(Layout layout);
1045    
1046            public long getScopeGroupId(Layout layout, String portletId);
1047    
1048            public long getScopeGroupId(long plid);
1049    
1050            public long getScopeGroupId(PortletRequest portletRequest)
1051                    throws PortalException, SystemException;
1052    
1053            public User getSelectedUser(HttpServletRequest request)
1054                    throws PortalException, SystemException;
1055    
1056            public User getSelectedUser(
1057                            HttpServletRequest request, boolean checkPermission)
1058                    throws PortalException, SystemException;
1059    
1060            public User getSelectedUser(PortletRequest portletRequest)
1061                    throws PortalException, SystemException;
1062    
1063            public User getSelectedUser(
1064                            PortletRequest portletRequest, boolean checkPermission)
1065                    throws PortalException, SystemException;
1066    
1067            public String getServletContextName();
1068    
1069            public long[] getSharedContentSiteGroupIds(
1070                            long companyId, long groupId, long userId)
1071                    throws PortalException, SystemException;
1072    
1073            public Map<String, List<Portlet>> getSiteAdministrationCategoriesMap(
1074                            HttpServletRequest request)
1075                    throws SystemException;
1076    
1077            public PortletURL getSiteAdministrationURL(
1078                            HttpServletRequest request, ThemeDisplay themeDisplay)
1079                    throws SystemException;
1080    
1081            public PortletURL getSiteAdministrationURL(
1082                    HttpServletRequest request, ThemeDisplay themeDisplay,
1083                    String portletName);
1084    
1085            public PortletURL getSiteAdministrationURL(
1086                            PortletResponse portletResponse, ThemeDisplay themeDisplay)
1087                    throws SystemException;
1088    
1089            public PortletURL getSiteAdministrationURL(
1090                    PortletResponse portletResponse, ThemeDisplay themeDisplay,
1091                    String portletName);
1092    
1093            public long[] getSiteAndCompanyGroupIds(long groupId)
1094                    throws PortalException, SystemException;
1095    
1096            public long[] getSiteAndCompanyGroupIds(ThemeDisplay themeDisplay)
1097                    throws PortalException, SystemException;
1098    
1099            public Locale getSiteDefaultLocale(long groupId)
1100                    throws PortalException, SystemException;
1101    
1102            public long getSiteGroupId(long groupId)
1103                    throws PortalException, SystemException;
1104    
1105            /**
1106             * Returns the URL of the login page for the current site if one is
1107             * available.
1108             *
1109             * @param  themeDisplay the theme display for the current page
1110             * @return the URL of the login page for the current site, or
1111             *         <code>null</code> if one is not available
1112             * @throws PortalException if a portal exception occurred
1113             * @throws SystemException if a system exception occurred
1114             */
1115            public String getSiteLoginURL(ThemeDisplay themeDisplay)
1116                    throws PortalException, SystemException;
1117    
1118            public String getStaticResourceURL(HttpServletRequest request, String uri);
1119    
1120            public String getStaticResourceURL(
1121                    HttpServletRequest request, String uri, long timestamp);
1122    
1123            public String getStaticResourceURL(
1124                    HttpServletRequest request, String uri, String queryString);
1125    
1126            public String getStaticResourceURL(
1127                    HttpServletRequest request, String uri, String queryString,
1128                    long timestamp);
1129    
1130            public String getStrutsAction(HttpServletRequest request);
1131    
1132            public String[] getSystemGroups();
1133    
1134            public String[] getSystemOrganizationRoles();
1135    
1136            public String[] getSystemRoles();
1137    
1138            public String[] getSystemSiteRoles();
1139    
1140            public String getUniqueElementId(
1141                    HttpServletRequest request, String namespace, String id);
1142    
1143            public String getUniqueElementId(
1144                    PortletRequest request, String namespace, String id);
1145    
1146            public UploadPortletRequest getUploadPortletRequest(
1147                    PortletRequest portletRequest);
1148    
1149            public UploadServletRequest getUploadServletRequest(
1150                    HttpServletRequest request);
1151    
1152            public Date getUptime();
1153    
1154            public String getURLWithSessionId(String url, String sessionId);
1155    
1156            public User getUser(HttpServletRequest request)
1157                    throws PortalException, SystemException;
1158    
1159            public User getUser(PortletRequest portletRequest)
1160                    throws PortalException, SystemException;
1161    
1162            public String getUserEmailAddress(long userId) throws SystemException;
1163    
1164            public long getUserId(HttpServletRequest request);
1165    
1166            public long getUserId(PortletRequest portletRequest);
1167    
1168            public String getUserName(BaseModel<?> baseModel);
1169    
1170            public String getUserName(long userId, String defaultUserName);
1171    
1172            public String getUserName(
1173                    long userId, String defaultUserName, HttpServletRequest request);
1174    
1175            public String getUserName(
1176                    long userId, String defaultUserName, String userAttribute);
1177    
1178            public String getUserName(
1179                    long userId, String defaultUserName, String userAttribute,
1180                    HttpServletRequest request);
1181    
1182            public String getUserPassword(HttpServletRequest request);
1183    
1184            public String getUserPassword(HttpSession session);
1185    
1186            public String getUserPassword(PortletRequest portletRequest);
1187    
1188            public String getUserValue(long userId, String param, String defaultValue)
1189                    throws SystemException;
1190    
1191            public String getValidPortalDomain(long companyId, String domain);
1192    
1193            public long getValidUserId(long companyId, long userId)
1194                    throws PortalException, SystemException;
1195    
1196            public String getVirtualLayoutActualURL(
1197                            long groupId, boolean privateLayout, String mainPath,
1198                            String friendlyURL, Map<String, String[]> params,
1199                            Map<String, Object> requestContext)
1200                    throws PortalException, SystemException;
1201    
1202            public LayoutFriendlyURLComposite getVirtualLayoutFriendlyURLComposite(
1203                            boolean privateLayout, String friendlyURL,
1204                            Map<String, String[]> params, Map<String, Object> requestContext)
1205                    throws PortalException, SystemException;
1206    
1207            public String getWidgetURL(Portlet portlet, ThemeDisplay themeDisplay)
1208                    throws PortalException, SystemException;
1209    
1210            public void initCustomSQL();
1211    
1212            public User initUser(HttpServletRequest request) throws Exception;
1213    
1214            public void invokeTaglibDiscussion(
1215                            PortletConfig portletConfig, ActionRequest actionRequest,
1216                            ActionResponse actionResponse)
1217                    throws Exception;
1218    
1219            /**
1220             * @deprecated As of 6.2.0 with no direct replacement
1221             */
1222            public boolean isAllowAddPortletDefaultResource(
1223                            HttpServletRequest request, Portlet portlet)
1224                    throws PortalException, SystemException;
1225    
1226            public boolean isCDNDynamicResourcesEnabled(HttpServletRequest request)
1227                    throws PortalException, SystemException;
1228    
1229            public boolean isCDNDynamicResourcesEnabled(long companyId);
1230    
1231            /**
1232             * @deprecated As of 6.1.0, renamed to {@link #isGroupAdmin(User, long)}
1233             */
1234            public boolean isCommunityAdmin(User user, long groupId) throws Exception;
1235    
1236            /**
1237             * @deprecated As of 6.1.0, renamed to {@link #isGroupOwner(User, long)}
1238             */
1239            public boolean isCommunityOwner(User user, long groupId) throws Exception;
1240    
1241            public boolean isCompanyAdmin(User user) throws Exception;
1242    
1243            public boolean isCompanyControlPanelPortlet(
1244                            String portletId, String category, ThemeDisplay themeDisplay)
1245                    throws PortalException, SystemException;
1246    
1247            public boolean isCompanyControlPanelPortlet(
1248                            String portletId, ThemeDisplay themeDisplay)
1249                    throws PortalException, SystemException;
1250    
1251            public boolean isCompanyControlPanelVisible(ThemeDisplay themeDisplay)
1252                    throws PortalException, SystemException;
1253    
1254            public boolean isControlPanelPortlet(
1255                            String portletId, String category, ThemeDisplay themeDisplay)
1256                    throws SystemException;
1257    
1258            public boolean isControlPanelPortlet(
1259                            String portletId, ThemeDisplay themeDisplay)
1260                    throws SystemException;
1261    
1262            public boolean isGroupAdmin(User user, long groupId) throws Exception;
1263    
1264            public boolean isGroupFriendlyURL(
1265                    String fullURL, String groupFriendlyURL, String layoutFriendlyURL);
1266    
1267            public boolean isGroupOwner(User user, long groupId) throws Exception;
1268    
1269            public boolean isLayoutDescendant(Layout layout, long layoutId)
1270                    throws PortalException, SystemException;
1271    
1272            public boolean isLayoutFirstPageable(Layout layout);
1273    
1274            public boolean isLayoutFirstPageable(String type);
1275    
1276            public boolean isLayoutFriendliable(Layout layout);
1277    
1278            public boolean isLayoutFriendliable(String type);
1279    
1280            public boolean isLayoutParentable(Layout layout);
1281    
1282            public boolean isLayoutParentable(String type);
1283    
1284            public boolean isLayoutSitemapable(Layout layout);
1285    
1286            public boolean isLoginRedirectRequired(HttpServletRequest request)
1287                    throws SystemException;
1288    
1289            public boolean isMethodGet(PortletRequest portletRequest);
1290    
1291            public boolean isMethodPost(PortletRequest portletRequest);
1292    
1293            public boolean isMultipartRequest(HttpServletRequest request);
1294    
1295            public boolean isOmniadmin(long userId);
1296    
1297            public boolean isReservedParameter(String name);
1298    
1299            public boolean isRSSFeedsEnabled();
1300    
1301            public boolean isSecure(HttpServletRequest request);
1302    
1303            public boolean isSystemGroup(String groupName);
1304    
1305            public boolean isSystemRole(String roleName);
1306    
1307            public boolean isUpdateAvailable() throws SystemException;
1308    
1309            public boolean isValidResourceId(String resourceId);
1310    
1311            public void removePortalPortEventListener(
1312                    PortalPortEventListener portalPortEventListener);
1313    
1314            public void resetCDNHosts();
1315    
1316            /**
1317             * @deprecated As of 6.2.0, replaced by {@link
1318             *             com.liferay.portal.security.auth.AuthTokenWhitelistUtil#resetPortletInvocationWhitelist}
1319             */
1320            public Set<String> resetPortletAddDefaultResourceCheckWhitelist();
1321    
1322            /**
1323             * @deprecated As of 6.2.0, replaced by {@link
1324             *             com.liferay.portal.security.auth.AuthTokenWhitelistUtil#resetPortletInvocationWhitelistActions}
1325             */
1326            public Set<String> resetPortletAddDefaultResourceCheckWhitelistActions();
1327    
1328            public String resetPortletParameters(String url, String portletId);
1329    
1330            public void sendError(
1331                            Exception e, ActionRequest actionRequest,
1332                            ActionResponse actionResponse)
1333                    throws IOException;
1334    
1335            public void sendError(
1336                            Exception e, HttpServletRequest request,
1337                            HttpServletResponse response)
1338                    throws IOException, ServletException;
1339    
1340            public void sendError(
1341                            int status, Exception e, ActionRequest actionRequest,
1342                            ActionResponse actionResponse)
1343                    throws IOException;
1344    
1345            public void sendError(
1346                            int status, Exception e, HttpServletRequest request,
1347                            HttpServletResponse response)
1348                    throws IOException, ServletException;
1349    
1350            public void sendRSSFeedsDisabledError(
1351                            HttpServletRequest request, HttpServletResponse response)
1352                    throws IOException, ServletException;
1353    
1354            public void sendRSSFeedsDisabledError(
1355                            PortletRequest portletRequest, PortletResponse portletResponse)
1356                    throws IOException, ServletException;
1357    
1358            /**
1359             * Sets the description for the page, overriding the existing page
1360             * description.
1361             */
1362            public void setPageDescription(
1363                    String description, HttpServletRequest request);
1364    
1365            /**
1366             * Sets the keywords for the page, overriding the existing page keywords.
1367             */
1368            public void setPageKeywords(String keywords, HttpServletRequest request);
1369    
1370            /**
1371             * Sets the subtitle for the page, overriding the existing page subtitle.
1372             */
1373            public void setPageSubtitle(String subtitle, HttpServletRequest request);
1374    
1375            /**
1376             * Sets the whole title for the page, overriding the existing page whole
1377             * title.
1378             */
1379            public void setPageTitle(String title, HttpServletRequest request);
1380    
1381            /**
1382             * Sets the port obtained on the first request to the portal.
1383             */
1384            public void setPortalPort(HttpServletRequest request);
1385    
1386            public void storePreferences(PortletPreferences portletPreferences)
1387                    throws IOException, ValidatorException;
1388    
1389            public String[] stripURLAnchor(String url, String separator);
1390    
1391            public String transformCustomSQL(String sql);
1392    
1393            public String transformSQL(String sql);
1394    
1395            public PortletMode updatePortletMode(
1396                    String portletId, User user, Layout layout, PortletMode portletMode,
1397                    HttpServletRequest request);
1398    
1399            public String updateRedirect(
1400                    String redirect, String oldPath, String newPath);
1401    
1402            public WindowState updateWindowState(
1403                    String portletId, User user, Layout layout, WindowState windowState,
1404                    HttpServletRequest request);
1405    
1406    }