Destiny.Lin
2 months ago
2 changed files with 55 additions and 0 deletions
@ -0,0 +1,51 @@
|
||||
package com.fanruan.config; |
||||
|
||||
import com.fanruan.repository.ConfigRepository; |
||||
import com.fr.config.utils.ConfData; |
||||
import com.fr.config.utils.ConfigReadUtils; |
||||
import com.fr.config.utils.PrefixHandler; |
||||
import com.fr.config.utils.UpDataOperator; |
||||
import com.fr.stable.StringUtils; |
||||
|
||||
/** |
||||
* 设计器远程下获取Updata的操作类 |
||||
* |
||||
* @author Destiny.Lin |
||||
* @since 11.0 |
||||
* Created on 2024/10/14 |
||||
*/ |
||||
public class UpDataDesignerRemoteOperator implements UpDataOperator { |
||||
|
||||
private static final UpDataDesignerRemoteOperator INSTANCE = new UpDataDesignerRemoteOperator(); |
||||
|
||||
/** |
||||
* 单例 |
||||
*/ |
||||
public static UpDataDesignerRemoteOperator getInstance() { |
||||
return INSTANCE; |
||||
} |
||||
|
||||
@Override |
||||
public ConfData getUpData(String prefix, String tenantId) { |
||||
return ConfigRepository.getInstance().getConfigByConfigsCache(getConfigNameSpace(prefix), () -> { |
||||
ConfData data = new ConfData(); |
||||
data.setDataMap(ConfigReadUtils.getData(prefix, tenantId)); |
||||
data.setMap(ConfigReadUtils.getClassInfo(prefix, tenantId)); |
||||
return data; |
||||
}); |
||||
} |
||||
|
||||
private String getConfigNameSpace(String id) { |
||||
|
||||
if (StringUtils.isEmpty(id)) { |
||||
throw new IllegalArgumentException("id cannot be null"); |
||||
} |
||||
int length = id.length(); |
||||
for (int i = 0; i < length; i++) { |
||||
if (PrefixHandler.SEPERATOR == id.charAt(i)) { |
||||
return id.substring(0, i); |
||||
} |
||||
} |
||||
throw new IllegalArgumentException("cannot resolve namespace of " + id); |
||||
} |
||||
} |
Loading…
Reference in new issue