/**
* Licensed to Apereo under one or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information regarding copyright ownership. Apereo
* 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 the
* following location:
*
* <p>http://www.apache.org/licenses/LICENSE-2.0
*
* <p>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.apereo.portal.portlet.container;
import java.util.Collections;
import java.util.Enumeration;
import java.util.Properties;
import java.util.Set;
import javax.portlet.PortalContext;
import javax.portlet.PortletMode;
import javax.portlet.WindowState;
import org.apache.commons.lang.Validate;
/**
* Provides basic information about uPortal and features it supports. The class will function with
* no configuration but no properties, states or modes are set by default.
*
*/
public class PortalContextImpl implements PortalContext {
private Properties portalProperties = new Properties();
private Set<PortletMode> portletModes = Collections.emptySet();
private Set<WindowState> windowStates = Collections.emptySet();
private String portalVersion;
public void setPortalVersion(String portalVersion) {
this.portalVersion = portalVersion;
}
/** @return the portalProperties, will not be null. */
public Properties getPortalProperties() {
return portalProperties;
}
/** @param portalProperties the portalProperties to set, can not be null. */
public void setPortalProperties(Properties portalProperties) {
Validate.notNull(portalProperties, "portalProperties can not be null");
this.portalProperties = portalProperties;
}
/** @return the portletModes, will not be null. */
public Set<PortletMode> getPortletModes() {
return portletModes;
}
/** @param portletModes the portletModes to set, can not be null. */
public void setPortletModes(Set<PortletMode> portletModes) {
Validate.notNull(portletModes, "portletModes can not be null");
this.portletModes = portletModes;
}
/** @return the windowStates, will not be null. */
public Set<WindowState> getWindowStates() {
return windowStates;
}
/** @param windowStates the windowStates to set, can not be null. */
public void setWindowStates(Set<WindowState> windowStates) {
Validate.notNull(windowStates, "windowStates can not be null");
this.windowStates = windowStates;
}
/* (non-Javadoc)
* @see javax.portlet.PortalContext#getPortalInfo()
*/
@Override
public String getPortalInfo() {
return "uPortal/" + this.portalVersion;
}
/* (non-Javadoc)
* @see javax.portlet.PortalContext#getProperty(java.lang.String)
*/
@Override
public String getProperty(String name) {
Validate.notNull(name, "Property name can not be null");
return this.portalProperties.getProperty(name);
}
/* (non-Javadoc)
* @see javax.portlet.PortalContext#getPropertyNames()
*/
@Override
@SuppressWarnings("unchecked")
public Enumeration<String> getPropertyNames() {
return (Enumeration<String>) this.portalProperties.propertyNames();
}
/* (non-Javadoc)
* @see javax.portlet.PortalContext#getSupportedPortletModes()
*/
@Override
public Enumeration<PortletMode> getSupportedPortletModes() {
return Collections.enumeration(this.portletModes);
}
/* (non-Javadoc)
* @see javax.portlet.PortalContext#getSupportedWindowStates()
*/
@Override
public Enumeration<WindowState> getSupportedWindowStates() {
return Collections.enumeration(this.windowStates);
}
}