/* * Copyright (C) 2003-2010 eXo Platform SAS. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License * as published by the Free Software Foundation; either version 3 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see<http://www.gnu.org/licenses/>. */ package org.exoplatform.platform.common.module; import java.util.List; /** * A Module of the platform. Modules are optional features sets that extend * the capabilities of eXo Platform.<br> * Created by The eXo Platform SAS Author : eXoPlatform exo@exoplatform.com * Jun 24, 2010 */ public class Module { /** * Identifier of the module. All modules must have a different one */ private String name; /** * Brief textual description of the module to help identifying it. */ private String description; /** * List of active portlets per module. */ private List<String> portlets; /** * List of webapps that are active in this module. */ private List<String> webapps; /** * Cache the hash code for the name */ private int hash; /** * indicates if the module is active or no. false by default */ private boolean active = false; public Module() {} public Module(String name, String description) { this.name = name; this.description = description; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public boolean isActive() { return active; } public void setActive(boolean active) { this.active = active; } public List<String> getPortlets() { return this.portlets; } public void setPortlets(List<String> portlets) { this.portlets = portlets; } public List<String> getWebapps() { return this.webapps; } public void setWebapps(List<String> webapps) { this.webapps = webapps; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj != null && obj instanceof Module) { return name.equals(((Module) obj).getName()); } return false; } @Override public int hashCode() { int h = hash; if (h == 0 && name != null) { hash = name.hashCode(); } return h; } @Override public String toString() { StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append("Module: [name =").append(name).append("],\r\n"); stringBuffer.append("Module: [description =").append(description).append("],\r\n"); stringBuffer.append("Module: [active =").append(active).append("],\r\n"); stringBuffer.append("Module: [portlets =").append(portlets).append("],\r\n"); stringBuffer.append("Module: [webapps =").append(webapps).append("]."); return stringBuffer.toString(); } }