genericportal.java

来自「RESIN 3.2 最新源码」· Java 代码 · 共 325 行

JAVA
325
字号
/* * The Apache Software License, Version 1.1 * * Copyright (c) 2001-2004 Caucho Technology, Inc.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in *    the documentation and/or other materials provided with the *    distribution. * * 3. The end-user documentation included with the redistribution, if *    any, must include the following acknowlegement: *       "This product includes software developed by the *        Caucho Technology (http://www.caucho.com/)." *    Alternately, this acknowlegement may appear in the software itself, *    if and wherever such third-party acknowlegements normally appear. * * 4. The names "Hessian", "Resin", and "Caucho" must not be used to *    endorse or promote products derived from this software without prior *    written permission. For written permission, please contact *    info@caucho.com. * * 5. Products derived from this software may not be called "Resin" *    nor may "Resin" appear in their names without prior written *    permission of Caucho Technology. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED.  IN NO EVENT SHALL CAUCHO TECHNOLOGY OR ITS CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * @author Sam */package com.caucho.portal.generic;import javax.portlet.PortalContext;import javax.portlet.PortletMode;import javax.portlet.PortletRequest;import javax.portlet.WindowState;import java.util.Collections;import java.util.Enumeration;import java.util.LinkedHashMap;import java.util.Map;import java.util.Set;import java.util.logging.Logger;/** * A Portal implementation with default values. */ public class GenericPortal   implements Portal, PortalContext{  static final public Logger log =     Logger.getLogger(GenericPortal.class.getName());  private String _portalInfo = "GenericPortal/1.0";  private String _reservedNamespace = "__";  private Map<String, String> _propertyMap;  private Set<WindowState> _supportedWindowStates;  private Set<PortletMode> _supportedPortletModes;  private Set<String> _userAttributeNames;  private PreferencesStore _preferencesStore;  private UserAttributeStore _userAttributeStore;  private Cache _cache;  private BufferFactory _bufferFactory;  private boolean _isInit;  public PortalContext getPortalContext()  {    return this;  }  /**   * Set the value to be returned by {@link #getPortalInfo}, the default   * is "GenericPortal/1.0".   */  public void setPortalInfo(String portalInfo)  {    _portalInfo = portalInfo;  }  /**   * {@inheritDoc}   */  public String getPortalInfo()  {    return _portalInfo;  }  /**   * Set the reserved namespace, the default is "__".   */  public void setReservedNamespace(String reservedNamespace)  {    _reservedNamespace = reservedNamespace;  }  /**   * {@inheritDoc}   */  public String getReservedNamespace()  {    return _reservedNamespace;  }  /**   * Set a portal property that is available with {@link #getProperty}.   */  public void setProperty(String name, String value)  {    if (_propertyMap == null)      _propertyMap = new LinkedHashMap<String, String>();    _propertyMap.put(name, value);  }  /**   * {@inheritDoc}   */  public String getProperty(String name)  {    if (_propertyMap == null)      return null;    return _propertyMap.get(name);  }  /**   * {@inheritDoc}   */  public Enumeration getPropertyNames()  {    if (_propertyMap == null)      return Collections.enumeration(Collections.EMPTY_LIST);    else      return Collections.enumeration(_propertyMap.keySet());  }  /**   * Set the supported portlet modes.  If this method is not called then   * then {@link #isPortletModeAllowed} will always return true (all portlet   * modes are allowed) but {@link #getSupportedPortletModes} will return an   * empty enumeration.   */  public void setSupportedPortletModes(Set<PortletMode> portletModes)  {    _supportedPortletModes = portletModes;  }  /**   * {@inheritDoc}   */  public Enumeration getSupportedPortletModes()  {    if (_supportedPortletModes == null)      return Collections.enumeration(Collections.EMPTY_LIST);    else      return Collections.<PortletMode>enumeration(_supportedPortletModes);  }  /**   * {@inheritDoc}   */  public boolean isPortletModeAllowed(PortletRequest portletRequest,                                      PortletMode portletMode)  {    if (_supportedPortletModes == null)      return true;    else      return _supportedPortletModes.contains(portletMode);  }  /**   * Set the supported window states.  If this method is never called   * and no window states are specified, then {@link #isWindowStateAllowed}   * will always return true (all window states are allowed) but    * {@link #getSupportedWindowStates} will return an empty enumeration.   */  public void setSupportedWindowStates(Set<WindowState> windowStates)  {    _supportedWindowStates = windowStates;  }  /**   * {@inheritDoc}   */  public Enumeration getSupportedWindowStates()  {    if (_supportedWindowStates == null)      return Collections.enumeration(Collections.EMPTY_LIST);    else      return Collections.enumeration(_supportedWindowStates);  }  /**   * {@inheritDoc}   */  public boolean isWindowStateAllowed(PortletRequest portletRequest,                                      WindowState windowState)  {    if (_supportedWindowStates == null)      return true;    else      return _supportedWindowStates.contains(windowState);  }  /**   * Set the {@link #PreferencesStore}, obtained once for each   * connection and then used to obtain a preferences store for each namespace   * as needed.  The default is an instance of    * {@link #SessionPreferencesStore}.   */  public void setPreferencesStore(PreferencesStore preferencesStore)  {    _preferencesStore = preferencesStore;  }  /**   * {@inheritDoc}   */  public PreferencesStore getPreferencesStore()  {    if (_preferencesStore == null)      _preferencesStore = new SessionPreferencesStore();    return _preferencesStore;  }  /**   * Set the user attribute names that the portlet can use, the default   * is to allow all user attributes to be visible to the portlet.   */  public void setUserAttributeNames(Set<String> userAttributeNames)  {    if (_userAttributeNames != null)      throw new IllegalArgumentException("user-attribute-names already set");    _userAttributeNames = userAttributeNames;  }  /**   * {@inheritDoc}   */  public Set<String> getUserAttributeNames()  {    return _userAttributeNames;  }  /**   * Set the {@link #UserAttributeStore}, obtained once for each   * connection and then used to obtain user attributes   * as needed.  The default is null, which means that no user attributes   * are available.   */  public void setUserAttributeStore(UserAttributeStore userAttributeStore)  {    _userAttributeStore = userAttributeStore;  }  /**   * {@inheritDoc}   */  public UserAttributeStore getUserAttributeStore()  {    return _userAttributeStore;  }  /**   * Caching is currently unimplemented, attempting to set this value will cause   * an exception to be thrown.   */  public void setCache(Cache cache)  {    _cache = cache;    throw new UnsupportedOperationException("cache not currently implemented");  }  /**   * {@inheritDoc}   */  public Cache getCache()  {    return _cache;  }  /**   * The default is an instance of BufferFactoryImpl.   */   public void setBufferFactory(BufferFactory bufferFactory)  {    _bufferFactory = bufferFactory;  }  /**   * @inheritDoc   */  public BufferFactory getBufferFactory()  {    if (_bufferFactory == null)      _bufferFactory = new BufferFactoryImpl();    return _bufferFactory;  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?