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 }