001 package nl.cwi.sen1.modulemanager.model;
002
003 import java.util.HashMap;
004 import java.util.Iterator;
005 import java.util.Map;
006
007 import nl.cwi.sen1.moduleapi.Factory;
008 import nl.cwi.sen1.moduleapi.types.TableEntry;
009 import nl.cwi.sen1.moduleapi.types.TableEntryTable;
010 import aterm.ATerm;
011
012 public class AttributeTable {
013 private Map<ATerm, ATerm> entries;
014
015 private Factory factory;
016
017 public AttributeTable(Factory factory) {
018 this.factory = factory;
019 entries = new HashMap<ATerm, ATerm>();
020 }
021
022 public void setEntry(ATerm key, ATerm value) {
023 entries.put(key, value);
024 }
025
026 public void addEntries(AttributeTable table) {
027 entries.putAll(table.entries);
028 }
029
030 public ATerm getValue(ATerm key) {
031 return entries.get(key);
032 }
033
034 public Map<ATerm, ATerm> getEntries() {
035 return entries;
036 }
037
038 public void deleteEntry(ATerm key) {
039 entries.remove(key);
040 }
041
042 public TableEntryTable getTableEntryTable() {
043 TableEntryTable table = factory.makeTableEntryTable();
044
045 for (Iterator<ATerm> iter = entries.keySet().iterator(); iter.hasNext();) {
046 ATerm key = iter.next();
047 ATerm value = getValue(key);
048
049 TableEntry entry = factory.makeTableEntry_TableEntry(key, value);
050 table = table.append(entry);
051 }
052
053 return table;
054 }
055 }