*
*/
@Override
public void inject2Store(String fileName, DisconfValue disconfValue) {
DisconfCenterFile disconfCenterFile = DisconfCenterStore.getInstance()
.getConfFileMap().get(fileName);
// 校验是否存在
if (disconfCenterFile == null) {
LOGGER.error("canot find " + fileName + " in store....");
return;
}
if (disconfValue == null || disconfValue.getProperties() == null) {
LOGGER.error("value is null for {}", fileName);
return;
}
// 存储
Map<String, FileItemValue> keMap = disconfCenterFile.getKeyMaps();
for (String fileItem : keMap.keySet()) {
Object object = disconfValue.getProperties().get(fileItem);
if (object == null) {
LOGGER.error(
"cannot find {} to be injectd. file content is: {}",
fileItem, disconfValue.getProperties().toString());
continue;
}
// 根据类型设置值
try {
Object value = ClassUtils.getValeByType(keMap.get(fileItem)
.getField().getType(), (String) object);
keMap.get(fileItem).setValue(value);
// 如果Object非null,则顺便也注入
if (disconfCenterFile.getObject() != null) {
keMap.get(fileItem)
.getField()
.set(disconfCenterFile.getObject(),
keMap.get(fileItem).getValue());
}
} catch (Exception e) {
LOGGER.error(e.toString(), e);