package com.fourspaces.featherdb.backend.inmemory; import java.io.Serializable; import java.util.Collection; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import com.fourspaces.featherdb.document.Document; public class InMemoryDB implements Serializable { /** * */ private static final long serialVersionUID = 3305138416001352871L; final private String name; final private Map<String,InMemoryDocument> docs = new ConcurrentHashMap<String,InMemoryDocument>(); public InMemoryDB(String name) { this.name=name; } public InMemoryDocument get(String id) { return docs.get(id); } public void save(Document doc) { if (docs.containsKey(doc.getId())) { docs.get(doc.getId()).update(doc); } else { docs.put(doc.getId(), new InMemoryDocument(doc)); } } public void remove(String id) { docs.remove(id); } public String getName() { return name; } public Collection<InMemoryDocument> getAllDocuments() { return docs.values(); } public int size() { return docs.size(); } }