/** * 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.registry; import java.util.Map; import javax.portlet.PortletMode; import javax.portlet.WindowState; import org.apache.commons.lang.Validate; import org.apache.pluto.container.PortletWindow; import org.apache.pluto.container.PortletWindowID; import org.apache.pluto.container.om.portlet.PortletDefinition; import org.apereo.portal.portlet.om.IPortletEntity; import org.apereo.portal.portlet.om.IPortletEntityId; import org.apereo.portal.portlet.om.IPortletWindow; import org.apereo.portal.portlet.om.IPortletWindowId; /** * Implementation of the {@link IPortletWindow} interface that tracks the current state of the * portlet. * */ class StatelessPortletWindowImpl implements IPortletWindow, PortletWindow { private final PortletDefinition portletDefinition; private final IPortletEntity portletEntity; private final PortletWindowData portletWindowData; /** * Creates a new PortletWindow with the default settings * * @param portletWindowData The persistent portlet window data * @param portletEntity The parent IPortletEntity * @param portletDefinition The pluto portlet descriptor level object (pluto calls it a * definition) * @throws IllegalArgumentException if any parameters are null */ public StatelessPortletWindowImpl( PortletWindowData portletWindowData, IPortletEntity portletEntity, PortletDefinition portletDefinition) { Validate.notNull(portletWindowData, "portletWindowData can not be null"); Validate.notNull(portletEntity, "portletEntity can not be null"); Validate.notNull(portletDefinition, "portletDefinition can not be null"); this.portletWindowData = portletWindowData; this.portletEntity = portletEntity; this.portletDefinition = portletDefinition; } /* (non-Javadoc) * @see org.apache.pluto.PortletWindow#getId() */ @Override public PortletWindowID getId() { return this.portletWindowData.getPortletWindowId(); } /* (non-Javadoc) * @see org.apereo.portal.portlet.om.IPortletWindow#getPortletWindowId() */ @Override public IPortletWindowId getPortletWindowId() { return this.portletWindowData.getPortletWindowId(); } @Override public IPortletEntityId getPortletEntityId() { return this.portletEntity.getPortletEntityId(); } @Override public IPortletEntity getPortletEntity() { return this.portletEntity; } /* (non-Javadoc) * @see org.apache.pluto.PortletWindow#getPortletMode() */ @Override public PortletMode getPortletMode() { return this.portletWindowData.getPortletMode(); } /* (non-Javadoc) * @see org.apache.pluto.PortletWindow#getWindowState() */ @Override public WindowState getWindowState() { return this.portletWindowData.getWindowState(); } /* (non-Javadoc) * @see org.apereo.portal.portlet.om.IPortletWindow#setPortletMode(javax.portlet.PortletMode) */ @Override public void setPortletMode(PortletMode mode) { this.portletWindowData.setPortletMode(mode); } /* (non-Javadoc) * @see org.apereo.portal.portlet.om.IPortletWindow#setWindowState(javax.portlet.WindowState) */ @Override public void setWindowState(WindowState state) { this.portletWindowData.setWindowState(state); } /* (non-Javadoc) * @see org.apereo.portal.portlet.om.IPortletWindow#getRequestParameers() */ @Override public Map<String, String[]> getRenderParameters() { return this.portletWindowData.getRenderParameters(); } /* (non-Javadoc) * @see org.apereo.portal.portlet.om.IPortletWindow#setRequestParameters(java.util.Map) */ @Override public void setRenderParameters(Map<String, String[]> renderParameters) { this.portletWindowData.setRenderParameters(renderParameters); } @Override public Map<String, String[]> getPublicRenderParameters() { return this.portletWindowData.getPublicRenderParameters(); } @Override public void setPublicRenderParameters(Map<String, String[]> publicRenderParameters) { this.portletWindowData.setPublicRenderParameters(publicRenderParameters); } /* (non-Javadoc) * @see org.apereo.portal.portlet.om.IPortletWindow#getExpirationCache() */ @Override public Integer getExpirationCache() { return this.portletWindowData.getExpirationCache(); } /* (non-Javadoc) * @see org.apereo.portal.portlet.om.IPortletWindow#setExpirationCache(java.lang.Integer) */ @Override public void setExpirationCache(Integer expirationCache) { this.portletWindowData.setExpirationCache(expirationCache); } /* * (non-Javadoc) * @see org.apereo.portal.portlet.om.IPortletWindow#getDelegationParent() */ @Override public IPortletWindowId getDelegationParentId() { return this.portletWindowData.getDelegationParentId(); } @Override public PortletWindow getPlutoPortletWindow() { return this; } /* * (non-Javadoc) * @see org.apache.pluto.container.PortletWindow#getPortletDefinition() */ @Override public PortletDefinition getPortletDefinition() { return this.portletDefinition; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((this.portletEntity == null) ? 0 : this.portletEntity.hashCode()); result = prime * result + ((this.portletWindowData.getPortletWindowId() == null) ? 0 : this.portletWindowData.getPortletWindowId().hashCode()); result = prime * result + ((this.portletWindowData.getDelegationParentId() == null) ? 0 : this.portletWindowData.getDelegationParentId().hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (!IPortletWindow.class.isAssignableFrom(obj.getClass())) return false; final IPortletWindow other = (IPortletWindow) obj; if (this.portletEntity == null) { if (other.getPortletEntity() != null) return false; } else if (!this.portletEntity.equals(other.getPortletEntity())) return false; if (this.portletWindowData.getDelegationParentId() == null) { if (other.getDelegationParentId() != null) return false; } else if (!this.portletWindowData .getDelegationParentId() .equals(other.getDelegationParentId())) return false; if (this.portletWindowData.getPortletWindowId() == null) { if (other.getPortletWindowId() != null) return false; } else if (!this.portletWindowData.getPortletWindowId().equals(other.getPortletWindowId())) return false; return true; } @Override public String toString() { return "PortletWindow [" + "portletWindowId=" + this.portletWindowData.getPortletWindowId() + ", " + "delegationParentId=" + this.portletWindowData.getDelegationParentId() + ", " + "portletMode=" + this.portletWindowData.getPortletMode() + ", " + "windowState=" + this.portletWindowData.getWindowState() + ", " + "expirationCache=" + this.portletWindowData.getExpirationCache() + ", " + "renderParameters=" + this.portletWindowData.getRenderParameters() + ", " + "publicRenderParameters=" + this.portletWindowData.getPublicRenderParameters() + ", " + "portletEntity=" + this.portletEntity + "]"; } }