/******************************************************************************* * This file is part of OpenNMS(R). * * Copyright (C) 2006-2011 The OpenNMS Group, Inc. * OpenNMS(R) is Copyright (C) 1999-2011 The OpenNMS Group, Inc. * * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc. * * OpenNMS(R) is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published * by the Free Software Foundation, either version 3 of the License, * or (at your option) any later version. * * OpenNMS(R) 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 OpenNMS(R). If not, see: * http://www.gnu.org/licenses/ * * For more information contact: * OpenNMS(R) Licensing <license@opennms.org> * http://www.opennms.org/ * http://www.opennms.com/ *******************************************************************************/ package org.opennms.web.admin.views.parsers; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * <p>View class.</p> * * @author ranger * @version $Id: $ * @since 1.8.1 */ public class View implements Cloneable { /** */ private String m_viewName; /** */ private String m_viewTitle; /** */ private String m_viewComments; /** */ private String m_commonRule; /** */ private List<String> m_userMembers; /** */ private List<String> m_groupMembers; /** */ private List<Category> m_categories; /** * <p>Constructor for View.</p> */ public View() { m_userMembers = new ArrayList<String>(); m_groupMembers = new ArrayList<String>(); m_categories = new ArrayList<Category>(); } /** * <p>clone</p> * * @return a {@link java.lang.Object} object. */ public Object clone() { try { super.clone(); } catch (CloneNotSupportedException e) { return null; } View newView = new View(); newView.setViewName(m_viewName); newView.setViewTitle(m_viewTitle); newView.setViewComments(m_viewComments); newView.setCommon(m_commonRule); for (String userMember : m_userMembers) { newView.addUserMember(userMember); } for (String groupMember : m_groupMembers) { newView.addGroupMember(groupMember); } for (Category category : m_categories) { newView.addCategory(category.clone()); } return newView; } /** * <p>setViewName</p> * * @param aValue a {@link java.lang.String} object. */ public void setViewName(String aValue) { m_viewName = aValue; } /** * <p>setViewTitle</p> * * @param aValue a {@link java.lang.String} object. */ public void setViewTitle(String aValue) { m_viewTitle = aValue; } /** * <p>setViewComments</p> * * @param aValue a {@link java.lang.String} object. */ public void setViewComments(String aValue) { m_viewComments = aValue; } /** * This method sets the common rule for the view * * @param common * the common rule. */ public void setCommon(String common) { m_commonRule = common; } /** * This method returns the common rule for the view * * @return the common rule. */ public String getCommon() { return m_commonRule; } /** * <p>addCategory</p> * * @param aCategory a {@link org.opennms.web.admin.views.parsers.Category} object. */ public void addCategory(Category aCategory) { m_categories.add(aCategory); } /** * <p>getViewName</p> * * @return a {@link java.lang.String} object. */ public String getViewName() { return m_viewName; } /** * <p>getViewTitle</p> * * @return a {@link java.lang.String} object. */ public String getViewTitle() { return m_viewTitle; } /** * <p>getViewComments</p> * * @return a {@link java.lang.String} object. */ public String getViewComments() { return m_viewComments; } /** * <p>getUserMembers</p> * * @return a {@link java.util.List} object. */ public List<String> getUserMembers() { return m_userMembers; } /** * <p>setUserMembers</p> * * @param users a {@link java.util.List} object. */ public void setUserMembers(List<String> users) { m_userMembers = users; } /** * <p>addUserMember</p> * * @param aMember a {@link java.lang.String} object. */ public void addUserMember(String aMember) { m_userMembers.add(aMember); } /** * <p>removeUserMember</p> * * @param aMember a {@link java.lang.String} object. */ public void removeUserMember(String aMember) { m_userMembers.remove(aMember); } /** * <p>clearUserMembers</p> */ public void clearUserMembers() { m_userMembers.clear(); } /** * <p>getGroupMembers</p> * * @return a {@link java.util.List} object. */ public List<String> getGroupMembers() { return m_groupMembers; } /** * <p>setGroupMembers</p> * * @param groups a {@link java.util.List} object. */ public void setGroupMembers(List<String> groups) { m_groupMembers = groups; } /** * <p>getMembers</p> * * @return a {@link java.util.List} object. */ public List<String> getMembers() { List<String> all = new ArrayList<String>(); all.addAll(m_userMembers); all.addAll(m_groupMembers); return all; } /** * <p>addGroupMember</p> * * @param aMember a {@link java.lang.String} object. */ public void addGroupMember(String aMember) { m_groupMembers.add(aMember); } /** * <p>removeGroupMember</p> * * @param aMember a {@link java.lang.String} object. */ public void removeGroupMember(String aMember) { m_groupMembers.remove(aMember); } /** * <p>clearGroupMembers</p> */ public void clearGroupMembers() { m_groupMembers.clear(); } /** * <p>hasUserMember</p> * * @param name a {@link java.lang.String} object. * @return a boolean. */ public boolean hasUserMember(String name) { return m_userMembers.contains(name); } /** * <p>hasGroupMember</p> * * @param name a {@link java.lang.String} object. * @return a boolean. */ public boolean hasGroupMember(String name) { return m_groupMembers.contains(name); } /** * <p>getCategories</p> * * @return a {@link java.util.List} object. */ public List<Category> getCategories() { return m_categories; } /** * <p>getCategoriesMap</p> * * @return a {@link java.util.Map} object. */ public Map<String, Category> getCategoriesMap() { Map<String, Category> categoriesMap = new HashMap<String, Category>(); for (Category category : m_categories) { categoriesMap.put(category.getLabel(), category); } return categoriesMap; } /** * <p>setCategories</p> * * @param categories a {@link java.util.List} object. */ public void setCategories(List<Category> categories) { m_categories = categories; } /** * <p>setCategories</p> * * @param categories a {@link java.util.Map} object. */ public void setCategories(Map<String, Category> categories) { m_categories.clear(); for (Category category : categories.values()) { m_categories.add(category); } } /** * <p>getCategoryCount</p> * * @return a int. */ public int getCategoryCount() { return m_categories.size(); } }