obo
2 years ago
34 changed files with 553 additions and 201 deletions
@ -0,0 +1,94 @@
|
||||
package com.fr.design.i18n; |
||||
|
||||
import com.fr.general.CloudCenter; |
||||
import com.fr.stable.StringUtils; |
||||
|
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* 生成根据配置项key获取云中心链接对应key的链接获取器的工厂类 |
||||
* 目前仅放在设计器模块下使用,拓展可以结合cbb中的内容自定义资源路径 |
||||
* |
||||
* @author obo |
||||
* @since 11.0 |
||||
* Created on 2023/4/7 |
||||
*/ |
||||
public final class LocaleLinkFactory { |
||||
|
||||
private LocaleLinkFactory(){}; |
||||
|
||||
/** |
||||
* 单一实例 |
||||
*/ |
||||
private static final LocaleLinkFactory INSTANCE = new LocaleLinkFactory(); |
||||
|
||||
/** |
||||
* 返回LocaleLinkFactory的单一实例 |
||||
* |
||||
* @return LocaleLinkFactory单一实例 |
||||
*/ |
||||
public static LocaleLinkFactory getInstance(){ |
||||
return INSTANCE; |
||||
} |
||||
|
||||
/** |
||||
* 存放特定配置文件key及其对应的LinkProvider |
||||
*/ |
||||
private static final Map<String, LocaleLinkProvider> MAP = new HashMap<>(); |
||||
|
||||
/** |
||||
* 根据配置文件项中的key初始化对应的生成器 |
||||
* |
||||
* @param propsKey 配置项key |
||||
* @param defaultKey 默认链接项key |
||||
* @return 对应的生成器 |
||||
*/ |
||||
public LocaleLinkProvider getOrCreateProvider(String propsKey, String defaultKey) { |
||||
if(MAP.containsKey(propsKey)) { |
||||
return MAP.get(propsKey); |
||||
} else { |
||||
LocaleLinkProvider provider = new LocaleLinkProvider(propsKey, defaultKey); |
||||
MAP.put(propsKey, provider); |
||||
return provider; |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* 对应配置项key的链接生成器 |
||||
* |
||||
* @author obo |
||||
* @since 11.0 |
||||
* Created on 2023/4/7 |
||||
*/ |
||||
public static class LocaleLinkProvider { |
||||
|
||||
/** |
||||
* 配置文件项key |
||||
*/ |
||||
private final String propsKey; |
||||
|
||||
/** |
||||
* 默认跳转链接配置项key |
||||
*/ |
||||
private final String defaultKey; |
||||
private LocaleLinkProvider(String propsKey, String defaultKey) { |
||||
this.propsKey = propsKey; |
||||
this.defaultKey = defaultKey; |
||||
} |
||||
|
||||
/** |
||||
* 获取对应链接 |
||||
* |
||||
* @return 链接 |
||||
*/ |
||||
public String getLink() { |
||||
String cloudKey = DesignI18nImpl.getInstance().i18nText(this.propsKey); |
||||
String url = CloudCenter.getInstance().acquireUrlByKind(cloudKey); |
||||
if(StringUtils.isEmpty(url)) { |
||||
return DesignI18nImpl.getInstance().i18nText(this.defaultKey); |
||||
} |
||||
return url; |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue