obo
2 years ago
35 changed files with 114 additions and 161 deletions
@ -1,94 +0,0 @@ |
|||||||
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; |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -0,0 +1,47 @@ |
|||||||
|
package com.fr.design.i18n; |
||||||
|
|
||||||
|
import com.fr.general.CloudCenter; |
||||||
|
import com.fr.stable.StringUtils; |
||||||
|
|
||||||
|
/** |
||||||
|
* 国际化链接获取工具 |
||||||
|
* 根据配置文件key获取云中心key对应的链接或者默认链接 |
||||||
|
* |
||||||
|
* @author obo |
||||||
|
* @since 11.0 |
||||||
|
* Created on 2023/4/7 |
||||||
|
*/ |
||||||
|
public final class LocaleLinkProvide { |
||||||
|
|
||||||
|
private LocaleLinkProvide(){}; |
||||||
|
|
||||||
|
/** |
||||||
|
* 单一实例 |
||||||
|
*/ |
||||||
|
private static final LocaleLinkProvide INSTANCE = new LocaleLinkProvide(); |
||||||
|
|
||||||
|
/** |
||||||
|
* 返回LocaleLinkProvide的单一实例 |
||||||
|
* |
||||||
|
* @return LocaleLinkProvide单一实例 |
||||||
|
*/ |
||||||
|
public static LocaleLinkProvide getInstance(){ |
||||||
|
return INSTANCE; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 根据配置文件项中的key获取链接 |
||||||
|
* |
||||||
|
* @param propsKey 配置项key |
||||||
|
* @param defaultKey 默认链接项key |
||||||
|
* @return 对应的生成器 |
||||||
|
*/ |
||||||
|
public String getLink(String propsKey, String defaultKey) { |
||||||
|
String cloudKey = DesignI18nImpl.getInstance().i18nText(propsKey); |
||||||
|
String url = CloudCenter.getInstance().acquireUrlByKind(cloudKey); |
||||||
|
if(StringUtils.isEmpty(url)) { |
||||||
|
return DesignI18nImpl.getInstance().i18nText(defaultKey); |
||||||
|
} |
||||||
|
return url; |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue