1 package org.sourceforge.jemm.database.memory; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 import java.util.concurrent.atomic.AtomicInteger; 6 7 import org.sourceforge.jemm.database.EnumId; 8 import org.sourceforge.jemm.database.EnumInfo; 9 import org.sourceforge.jemm.database.components.se.StorageEngineEnumIF; 10 11 public class EnumIFImpl implements StorageEngineEnumIF { 12 13 private final Map<String,EnumId> classNamesToEnumIds = new HashMap<String, EnumId>(); 14 private final Map<EnumId,EnumInfo> enumIdsToInfos = new HashMap<EnumId,EnumInfo>(); 15 private AtomicInteger nextEnumIdValue = new AtomicInteger(1); 16 17 18 @Override 19 public EnumId createEnumId() { 20 return new EnumId(nextEnumIdValue.getAndIncrement()); 21 } 22 23 @Override 24 public EnumId getEnumIdByName(String className) { 25 return classNamesToEnumIds.get(className); 26 } 27 28 @Override 29 public EnumInfo getEnumInfoById(EnumId enumId) { 30 return enumIdsToInfos.get(enumId); 31 } 32 33 @Override 34 public void saveEnumInfo(EnumId enumId, EnumInfo info) { 35 classNamesToEnumIds.put(info.getClassName(), enumId); 36 enumIdsToInfos.put(enumId, info); 37 } 38 }