portalurl.java
来自「RESIN 3.2 最新源码」· Java 代码 · 共 217 行
JAVA
217 行
/* * 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 com.caucho.portal.generic.context.ConnectionContext;import javax.portlet.PortletMode;import javax.portlet.PortletModeException;import javax.portlet.PortletSecurityException;import javax.portlet.PortletURL;import javax.portlet.WindowState;import javax.portlet.WindowStateException;import java.util.Map;public class PortalURL implements PortletURL{ private ConnectionContext _context; private InvocationURL _invocationURL; private String _url; public PortalURL( ConnectionContext context, InvocationURL invocationURL) { _context = context; _invocationURL = invocationURL; } protected void checkWindowState(String namespace, WindowState windowState) throws WindowStateException { if (!_context.isWindowStateAllowed(namespace, windowState)) throw new WindowStateException( "WindowState `" + windowState + "' not allowed for namespace `" + namespace + "'", windowState); } public void setWindowState(WindowState windowState) throws WindowStateException { _url = null; checkWindowState(_invocationURL.getNamespace(), windowState); _invocationURL.setWindowState(windowState); } public void setWindowState(String namespace, WindowState windowState) throws WindowStateException { _url = null; checkWindowState(namespace, windowState); _invocationURL.setWindowState(namespace, windowState); } protected void checkPortletMode(String namespace, PortletMode portletMode) throws PortletModeException { if (!_context.isPortletModeAllowed(namespace, portletMode)) throw new PortletModeException( "PortletMode `" + portletMode + "' not allowed for namespace `" + namespace + "'", portletMode); } public void setPortletMode(PortletMode portletMode) throws PortletModeException { _url = null; checkPortletMode(_invocationURL.getNamespace(), portletMode); _invocationURL.setPortletMode(portletMode); } public void setPortletMode(String namespace, PortletMode portletMode) throws PortletModeException { _url = null; checkPortletMode(namespace, portletMode); _invocationURL.setPortletMode(namespace, portletMode); } public void setParameters(Map parameters) { _url = null; _invocationURL.setParameters(parameters); } public void setParameter(String name, String value) { _url = null; _invocationURL.setParameter(name, value); } public void setParameter(String name, String[] values) { _url = null; _invocationURL.setParameter(name, values); } public void setParameter(String namespace, String name, String value) { _url = null; _invocationURL.setParameter(namespace, name, value); } public void setParameter(String namespace, String name, String[] values) { _url = null; _invocationURL.setParameter(namespace, name, values); } public void setParameters(String namespace, Map<String, String[]> parameters) { _url = null; _invocationURL.setParameters(namespace, parameters); } public void setSecure(boolean secure) throws PortletSecurityException { _url = null; _invocationURL.setSecure(secure); if (secure == true) getURL(); } /** * True if setSecure() was called for this url, even if it was * called with setSecure(false) */ protected boolean isSecureSpecified() { return _invocationURL.isSecureSpecified(); } protected boolean isSecure() { return _invocationURL.isSecure(); } protected String getURL() throws PortletSecurityException { if (_url != null) return _url; String url = _invocationURL.getURL(); if (isSecureSpecified()) _url = _context.resolveURL(url, isSecure()); else _url = _context.resolveURL(url); return _url; } public String toString() { try { return getURL(); } catch (PortletSecurityException ex) { throw new RuntimeException(ex); } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?