001 /* 002 * Copyright (C) 2008-2010 by Holger Arndt 003 * 004 * This file is part of the Universal Java Matrix Package (UJMP). 005 * See the NOTICE file distributed with this work for additional 006 * information regarding copyright ownership and licensing. 007 * 008 * UJMP is free software; you can redistribute it and/or modify 009 * it under the terms of the GNU Lesser General Public License as 010 * published by the Free Software Foundation; either version 2 011 * of the License, or (at your option) any later version. 012 * 013 * UJMP is distributed in the hope that it will be useful, 014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 016 * GNU Lesser General Public License for more details. 017 * 018 * You should have received a copy of the GNU Lesser General Public 019 * License along with UJMP; if not, write to the 020 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 021 * Boston, MA 02110-1301 USA 022 */ 023 024 package org.ujmp.core.treematrix; 025 026 import java.util.ArrayList; 027 import java.util.HashMap; 028 import java.util.List; 029 import java.util.Map; 030 031 import org.ujmp.core.collections.ArrayIndexList; 032 033 public class DefaultTreeMatrix extends AbstractTreeMatrix { 034 private static final long serialVersionUID = -6752285310555819432L; 035 036 private final List<Object> objects = new ArrayIndexList<Object>(); 037 038 private Object root = null; 039 040 private final Map<Object, List<Object>> childrenMap = new HashMap<Object, List<Object>>(); 041 042 private final Map<Object, Object> parentMap = new HashMap<Object, Object>(); 043 044 045 public List<Object> getChildren(Object o) { 046 List<Object> children = childrenMap.get(o); 047 if (children == null) { 048 children = new ArrayList<Object>(); 049 childrenMap.put(o, children); 050 } 051 return children; 052 } 053 054 public Map<Object, Object> getParentMap() { 055 return parentMap; 056 } 057 058 059 public List<Object> getObjectList() { 060 return objects; 061 } 062 063 064 public Object getRoot() { 065 return root; 066 } 067 068 069 public void setRoot(Object o) { 070 this.root = o; 071 if (!objects.contains(o)) { 072 objects.add(o); 073 } 074 notifyGUIObject(); 075 } 076 077 }