public static void initializeClassInfos(DomainModel domainModel, int serverId) {
DomainClassInfo.serverId = serverId;
serverOidBase = (long) serverId << 48;
logger.info("serverId: {}, serverOidBase: {}", serverId, Long.toHexString(serverOidBase));
try {
Map<Class<? extends AbstractDomainObject>, DomainClassInfo> map =
importClassInfoMap(JVSTMBackEnd.getInstance().getRepository().getDomainClassInfos());
ArrayList<DomainClassInfo> array = new ArrayList<DomainClassInfo>();
int maxId = 0;
for (DomainClassInfo classInfo : map.values()) {
logger.info("Existing domain class '{}' with id '{}'", classInfo.domainClassName,
Long.toHexString(classInfo.classId));
maxId = Math.max(maxId, classInfo.classId);
addNewInfoToArray(array, classInfo);
}
maxId = createAnyMissingRecords(map, array, maxId, domainModel);
classInfoMap = Collections.unmodifiableMap(map);
classInfoById = new DomainClassInfo[maxId + 1];
array.toArray(classInfoById);
} catch (Exception e) {
throw new Error(e);
}
}