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