package com.vci.ubcs.code.util; import com.alibaba.cloud.commons.lang.StringUtils; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; import com.vci.ubcs.code.vo.webserviceModel.attrmap.LibraryDO; import com.vci.ubcs.code.webService.config.AttributeMapConfig; import com.vci.ubcs.starter.util.LocalFileUtil; import com.vci.ubcs.starter.web.util.VciBaseUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import java.util.Locale; import java.util.Map; @Slf4j public class gennerAttrMapUtil { @Autowired(required = false) private AttributeMapConfig attributeMapConfig; private static String fileName=""; private static gennerAttrMapUtil newInstance=null; public static gennerAttrMapUtil getNewInstance() { if(newInstance==null){ newInstance=new gennerAttrMapUtil(); } return newInstance; } /**** * 获取 * @param systemId */ public LibraryDO gennerAttrMapBySystem(String systemId, Map system_attrmap) throws Throwable{ log.info("系统标识->"+systemId); if(StringUtils.isBlank(systemId)){ throw new Throwable("系统标识为空"); } LibraryDO rootDataVO=new LibraryDO(); if(system_attrmap.containsKey(systemId.toLowerCase(Locale.ROOT)) || system_attrmap.containsKey(systemId.toUpperCase(Locale.ROOT))){ //String path = system_attrmap.get(systemId); String path = VciBaseUtil.getMapStrValueIgnoreCase(system_attrmap,systemId); log.info("系统标识->"+systemId+";文件属性配置文件路径->"+path); String attributeMapData= LocalFileUtil.readContentForFile(path); log.info("读取后的属性映射内容"+attributeMapData); XStream xStream = new XStream(new DomDriver()); xStream.processAnnotations(LibraryDO.class); xStream.autodetectAnnotations(true); log.info("转换成对象start"); rootDataVO = (LibraryDO) xStream.fromXML(attributeMapData); log.info("转换成对象end"); } return rootDataVO; } }