1 /* 2 * File: Data.java 3 * Created: 22.10.2006 17:11:19 4 * 5 * Copyright 2006 Michal Burda. 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation; either version 2 of the License, or 10 * (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 20 */ 21 22 package net.sf.webmancer.db; 23 24 import java.util.Collection; 25 import java.util.HashMap; 26 import java.util.Map; 27 28 import net.sf.webmancer.util.immutable.ImmutableCollection; 29 import net.sf.webmancer.util.immutable.ImmutableMap; 30 31 /** 32 * @author Michal Burda 33 * 34 */ 35 public class Data implements IData { 36 37 /** 38 * 39 */ 40 private Map<String, IAttribute> attributes; 41 42 /** 43 * 44 */ 45 private Collection<Map<IAttribute, ICell>> rows; 46 47 /** 48 * Constructs the Data. 49 * 50 */ 51 public Data() { 52 super(); 53 this.attributes = new HashMap<String, IAttribute>(); 54 } 55 56 /** 57 * @see net.sf.webmancer.db.IData#getAttributes() 58 */ 59 public Map<String, IAttribute> getAttributes() { 60 //TODO whenever the Immutable* class is used, a caching mechanism may be introduced! 61 return new ImmutableMap<String, IAttribute>(attributes); 62 } 63 64 /** 65 * @see net.sf.webmancer.db.IData#getRows() 66 */ 67 public Collection<Map<IAttribute, ICell>> getRows() { 68 return new ImmutableCollection<Map<IAttribute,ICell>>(rows); 69 } 70 71 /** 72 * @return 73 */ 74 public Map<String, IAttribute> getModifiableAttributes() { 75 return attributes; 76 } 77 78 /** 79 * @return 80 */ 81 public Collection<Map<IAttribute, ICell>> getModifiableRows() { 82 return rows; 83 } 84 }