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    }