📄 portalcontextimpl.java
字号:
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.pluto.driver.services.container;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Vector;
import javax.portlet.PortalContext;
import javax.portlet.PortletMode;
import javax.portlet.WindowState;
import org.apache.pluto.driver.config.DriverConfiguration;
/**
* <code>PortalContext</code> implementation for the Pluto Portal Driver.
*/
public class PortalContextImpl implements PortalContext {
/**
* The <code>DriverConfigurationImpl</code> from which this
* <code>PortalContext</code> recieves it's configuration information.
*/
private DriverConfiguration config;
/**
* Portal information.
*/
private String info = null;
/**
* Portal Properties
*/
private HashMap properties = new HashMap();
/**
* Supported PortletModes.
*/
private Vector portletModes;
/**
* Supported WindowStates.
*/
private Vector windowStates;
/**
* Default Constructor.
* @param config
*/
public PortalContextImpl(DriverConfiguration config) {
this.config = config;
reset();
}
/**
* Get a dynamic portal property.
* @param name
* @return the property value associated with the given key.
* @throws IllegalArgumentException if the specified name is null.
*/
public String getProperty(String name) {
if (name == null) {
throw new IllegalArgumentException("Property name == null");
}
return (String) properties.get(name);
}
/**
* Get an enumeration containing all names of the portal properties.
* @return an enumeration of all keys to which properties are bound.
*/
public Enumeration getPropertyNames() {
Vector names = new Vector(properties.keySet());
return names.elements();
}
/**
* Get an enumeration of all <code>PortletMode</code>s supported by this
* portal.
* @return enumeration of all supported portlet modes.
*/
public Enumeration getSupportedPortletModes() {
if (portletModes == null) {
portletModes = new Vector();
Enumeration enumeration = new Vector(config.getSupportedPortletModes()).elements();
while (enumeration.hasMoreElements()) {
portletModes.add(
new PortletMode(enumeration.nextElement().toString()));
}
}
return portletModes.elements();
}
/**
* Get an enumeration of all <code>WindowState</code>s supported by this
* portal.
* @return an enumeration of all supported window states.
*/
public Enumeration getSupportedWindowStates() {
if (windowStates == null) {
windowStates = new Vector();
Enumeration enumeration = new Vector(config.getSupportedWindowStates()).elements();
while (enumeration.hasMoreElements()) {
windowStates.add(
new WindowState(enumeration.nextElement().toString()));
}
}
return windowStates.elements();
}
/**
* Get the portal info for this portal.
* @return the portal information for this context.
*/
public String getPortalInfo() {
if(info == null) {
info = config.getPortalName() + "/" + config.getPortalVersion();
}
return info;
}
// additional methods.
// methods used container internally to set
public void setProperty(String name, String value) {
if (name == null) {
throw new IllegalArgumentException("Property name == null");
}
properties.put(name, value);
}
/**
* reset all values to default portlet modes and window states; delete all
* properties and set the given portlet information as portlet info string.
*/
public void reset() {
info = null;
properties.clear();
}
public DriverConfiguration getDriverConfiguration() {
return config;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -