Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_57962205
redisson
提交
f731eb10
R
redisson
项目概览
weixin_57962205
/
redisson
与 Fork 源项目一致
从无法访问的项目Fork
通知
10
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
redisson
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
f731eb10
编写于
6月 08, 2021
作者:
N
Nikita Koksharov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Feature - Helidon CDI integration. #3649
上级
53a804d3
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
106 addition
and
0 deletion
+106
-0
redisson/src/main/java/org/redisson/config/PropertiesConvertor.java
...rc/main/java/org/redisson/config/PropertiesConvertor.java
+106
-0
未找到文件。
redisson/src/main/java/org/redisson/config/PropertiesConvertor.java
0 → 100644
浏览文件 @
f731eb10
/**
* Copyright (c) 2013-2021 Nikita Koksharov
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.redisson.config
;
import
java.util.*
;
import
java.util.function.Function
;
/**
*
* @author Nikita Koksharov
*
*/
public
class
PropertiesConvertor
{
public
static
String
toYaml
(
String
suffix
,
Iterable
<
String
>
propertyNames
,
Function
<
String
,
String
>
resolver
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
for
(
String
propertyName
:
propertyNames
)
{
if
(!
propertyName
.
startsWith
(
suffix
))
{
continue
;
}
List
<
String
>
pps
=
Arrays
.
asList
(
propertyName
.
replace
(
suffix
,
""
).
split
(
"\\."
));
String
value
=
resolver
.
apply
(
propertyName
);
if
(
pps
.
size
()
==
2
)
{
Map
<
String
,
Object
>
m
=
(
Map
<
String
,
Object
>)
map
.
computeIfAbsent
(
pps
.
get
(
0
),
k
->
new
HashMap
<
String
,
Object
>());
m
.
put
(
pps
.
get
(
1
),
value
);
}
else
{
map
.
put
(
pps
.
get
(
0
),
value
);
}
}
StringBuilder
yaml
=
new
StringBuilder
();
for
(
Map
.
Entry
<
String
,
Object
>
entry
:
map
.
entrySet
())
{
if
(
entry
.
getValue
()
instanceof
Map
)
{
yaml
.
append
(
convertKey
(
entry
.
getKey
())).
append
(
":"
).
append
(
"\n"
);
Map
<
String
,
Object
>
m
=
(
Map
)
entry
.
getValue
();
for
(
Map
.
Entry
<
String
,
Object
>
subEntry
:
m
.
entrySet
())
{
yaml
.
append
(
" "
).
append
(
convertKey
(
subEntry
.
getKey
())).
append
(
": "
);
addValue
(
yaml
,
subEntry
);
yaml
.
append
(
"\n"
);
}
}
else
{
yaml
.
append
(
convertKey
(
entry
.
getKey
())).
append
(
": "
);
addValue
(
yaml
,
entry
);
yaml
.
append
(
"\n"
);
}
}
return
yaml
.
toString
();
}
private
static
String
convertKey
(
String
key
)
{
if
(!
key
.
contains
(
"-"
))
{
return
key
;
}
String
[]
parts
=
key
.
split
(
"-"
);
StringBuilder
builder
=
new
StringBuilder
();
builder
.
append
(
parts
[
0
]);
for
(
int
i
=
1
;
i
<
parts
.
length
;
i
++)
{
builder
.
append
(
parts
[
i
].
substring
(
0
,
1
).
toUpperCase
())
.
append
(
parts
[
i
].
substring
(
1
));
}
return
builder
.
toString
();
}
private
static
void
addValue
(
StringBuilder
yaml
,
Map
.
Entry
<
String
,
Object
>
subEntry
)
{
String
value
=
(
String
)
subEntry
.
getValue
();
if
(
value
.
contains
(
","
))
{
for
(
String
part
:
value
.
split
(
","
))
{
yaml
.
append
(
"\n "
).
append
(
"- \""
).
append
(
part
.
trim
()).
append
(
"\""
);
}
return
;
}
if
(
"codec"
.
equals
(
subEntry
.
getKey
())
||
"loadBalancer"
.
equals
(
subEntry
.
getKey
()))
{
value
=
"!<"
+
value
+
"> {}"
;
}
else
{
try
{
Long
.
parseLong
(
value
);
}
catch
(
NumberFormatException
e
)
{
if
(!
Boolean
.
parseBoolean
(
value
)
&&
!
"null"
.
equals
(
value
))
{
value
=
"\""
+
value
+
"\""
;
}
}
}
yaml
.
append
(
value
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录