private void updateStaticReferenceTables() throws UnifyException {
logDebug("Updating static reference tables...");
List<Class<? extends EnumConst>> enumConstList = getAnnotatedClasses(EnumConst.class, StaticList.class);
for (Class<? extends EnumConst> clazz : enumConstList) {
StaticList ra = clazz.getAnnotation(StaticList.class);
logDebug("Updating static reference table [{0}]...", ra.value());
Map<String, String> map = getListMap(LocaleType.APPLICATION, ra.value());
StaticReferenceQuery query = new StaticReferenceQuery(clazz);
for (Map.Entry<String, String> entry : map.entrySet()) {
String description = entry.getValue();
query.clear();
query.code(entry.getKey());
StaticReference staticData = db().find(query);
if (staticData == null) {
staticData = new StaticReference(clazz);
staticData.setCode(entry.getKey());
staticData.setDescription(description);
db().create(staticData);
} else if (!description.equals(staticData.getDescription())) {
staticData.setDescription(description);
db().updateById(staticData);
}
}
}
}