How to remove datatype from value in config file with typesafe?
I have a config file beam-template.conf which has different properties like
`beam.agentsim.agents.rideHail.keepMaxTopNScores = "int | 1"
beam.agentsim.agents.rideHail.minScoreThresholdForRepositioning = "double | 0.1"`
I am trying to get the properties values like this.
Configfactory.parseFile(new File(path/beam-template.conf)).entrySet().asScala.foreach { entry =>
if (!(userConf.hasPathOrNull(entry.getKey))) {
logString+="nKey= " + entry.getKey + " ,Value= " + entry.getValue.render
}
}
So the problem is this that the values also include their datatypes like
value = int | 1
value = double | 0.1
I need only the actual values like value = 1 and value = 0.1 instead of including their datatype. So please suggest some solution so that I can remove the datatype from their values
scala typesafe typesafe-config
add a comment |
I have a config file beam-template.conf which has different properties like
`beam.agentsim.agents.rideHail.keepMaxTopNScores = "int | 1"
beam.agentsim.agents.rideHail.minScoreThresholdForRepositioning = "double | 0.1"`
I am trying to get the properties values like this.
Configfactory.parseFile(new File(path/beam-template.conf)).entrySet().asScala.foreach { entry =>
if (!(userConf.hasPathOrNull(entry.getKey))) {
logString+="nKey= " + entry.getKey + " ,Value= " + entry.getValue.render
}
}
So the problem is this that the values also include their datatypes like
value = int | 1
value = double | 0.1
I need only the actual values like value = 1 and value = 0.1 instead of including their datatype. So please suggest some solution so that I can remove the datatype from their values
scala typesafe typesafe-config
add a comment |
I have a config file beam-template.conf which has different properties like
`beam.agentsim.agents.rideHail.keepMaxTopNScores = "int | 1"
beam.agentsim.agents.rideHail.minScoreThresholdForRepositioning = "double | 0.1"`
I am trying to get the properties values like this.
Configfactory.parseFile(new File(path/beam-template.conf)).entrySet().asScala.foreach { entry =>
if (!(userConf.hasPathOrNull(entry.getKey))) {
logString+="nKey= " + entry.getKey + " ,Value= " + entry.getValue.render
}
}
So the problem is this that the values also include their datatypes like
value = int | 1
value = double | 0.1
I need only the actual values like value = 1 and value = 0.1 instead of including their datatype. So please suggest some solution so that I can remove the datatype from their values
scala typesafe typesafe-config
I have a config file beam-template.conf which has different properties like
`beam.agentsim.agents.rideHail.keepMaxTopNScores = "int | 1"
beam.agentsim.agents.rideHail.minScoreThresholdForRepositioning = "double | 0.1"`
I am trying to get the properties values like this.
Configfactory.parseFile(new File(path/beam-template.conf)).entrySet().asScala.foreach { entry =>
if (!(userConf.hasPathOrNull(entry.getKey))) {
logString+="nKey= " + entry.getKey + " ,Value= " + entry.getValue.render
}
}
So the problem is this that the values also include their datatypes like
value = int | 1
value = double | 0.1
I need only the actual values like value = 1 and value = 0.1 instead of including their datatype. So please suggest some solution so that I can remove the datatype from their values
scala typesafe typesafe-config
scala typesafe typesafe-config
edited Nov 22 '18 at 7:54
Ayush
asked Nov 22 '18 at 7:23
AyushAyush
1418
1418
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
I assume the type of 'int | 1' is String.
Then you can use:
def toValue[A](value: String): A = {
val valStr = value.split("\|").last.trim()
(value.split("\|").head.trim() match {
case "double" => valStr.toDouble
case "int" => valStr.toInt
case other => valStr
}).asInstanceOf[A]
}
println(toValue[Int]("int | 1"))
println(toValue[Double]("double | 1.1"))
println(toValue[String]("hello"))
I updated this to a general function. I also saw that | must be escaped.
thanks @pme for you reply
– Ayush
Nov 22 '18 at 9:12
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53425771%2fhow-to-remove-datatype-from-value-in-config-file-with-typesafe%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I assume the type of 'int | 1' is String.
Then you can use:
def toValue[A](value: String): A = {
val valStr = value.split("\|").last.trim()
(value.split("\|").head.trim() match {
case "double" => valStr.toDouble
case "int" => valStr.toInt
case other => valStr
}).asInstanceOf[A]
}
println(toValue[Int]("int | 1"))
println(toValue[Double]("double | 1.1"))
println(toValue[String]("hello"))
I updated this to a general function. I also saw that | must be escaped.
thanks @pme for you reply
– Ayush
Nov 22 '18 at 9:12
add a comment |
I assume the type of 'int | 1' is String.
Then you can use:
def toValue[A](value: String): A = {
val valStr = value.split("\|").last.trim()
(value.split("\|").head.trim() match {
case "double" => valStr.toDouble
case "int" => valStr.toInt
case other => valStr
}).asInstanceOf[A]
}
println(toValue[Int]("int | 1"))
println(toValue[Double]("double | 1.1"))
println(toValue[String]("hello"))
I updated this to a general function. I also saw that | must be escaped.
thanks @pme for you reply
– Ayush
Nov 22 '18 at 9:12
add a comment |
I assume the type of 'int | 1' is String.
Then you can use:
def toValue[A](value: String): A = {
val valStr = value.split("\|").last.trim()
(value.split("\|").head.trim() match {
case "double" => valStr.toDouble
case "int" => valStr.toInt
case other => valStr
}).asInstanceOf[A]
}
println(toValue[Int]("int | 1"))
println(toValue[Double]("double | 1.1"))
println(toValue[String]("hello"))
I updated this to a general function. I also saw that | must be escaped.
I assume the type of 'int | 1' is String.
Then you can use:
def toValue[A](value: String): A = {
val valStr = value.split("\|").last.trim()
(value.split("\|").head.trim() match {
case "double" => valStr.toDouble
case "int" => valStr.toInt
case other => valStr
}).asInstanceOf[A]
}
println(toValue[Int]("int | 1"))
println(toValue[Double]("double | 1.1"))
println(toValue[String]("hello"))
I updated this to a general function. I also saw that | must be escaped.
edited Nov 22 '18 at 8:17
answered Nov 22 '18 at 8:00
pmepme
2,74311426
2,74311426
thanks @pme for you reply
– Ayush
Nov 22 '18 at 9:12
add a comment |
thanks @pme for you reply
– Ayush
Nov 22 '18 at 9:12
thanks @pme for you reply
– Ayush
Nov 22 '18 at 9:12
thanks @pme for you reply
– Ayush
Nov 22 '18 at 9:12
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53425771%2fhow-to-remove-datatype-from-value-in-config-file-with-typesafe%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown