001    package org.cumulus4j.store.model;
002    
003    import java.util.ArrayList;
004    import java.util.Collection;
005    import java.util.HashMap;
006    import java.util.List;
007    import java.util.Map;
008    
009    import javax.jdo.PersistenceManager;
010    import javax.jdo.Query;
011    
012    public class DatastoreVersionDAO extends AbstractDAO {
013    
014            public DatastoreVersionDAO() { }
015    
016            public DatastoreVersionDAO(PersistenceManager pm) {
017                    super(pm);
018            }
019    
020            public Map<String, DatastoreVersion> getCommandID2DatastoreVersionMap(int keyStoreRefID) {
021                    List<DatastoreVersion> datastoreVersions = getDatastoreVersions(keyStoreRefID);
022                    Map<String, DatastoreVersion> result = new HashMap<String, DatastoreVersion>(datastoreVersions.size());
023                    for (DatastoreVersion datastoreVersion : datastoreVersions) {
024                            result.put(datastoreVersion.getCommandID(), datastoreVersion);
025                    }
026                    return result;
027            }
028    
029            public List<DatastoreVersion> getDatastoreVersions(int keyStoreRefID) {
030                    Query query = pm.newQuery(DatastoreVersion.class);
031                    @SuppressWarnings("unchecked")
032                    Collection<DatastoreVersion> c = (Collection<DatastoreVersion>) query.execute();
033                    try {
034                            return new ArrayList<DatastoreVersion>(c);
035                    } finally {
036                            query.closeAll();
037                    }
038            }
039    }