View Javadoc

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  }