This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Initially I have an interface Expr (just like in Java) and have two classes (Constant and BinaryPlus) implement that interface | |
interface Exp { | |
fun eval(): Double | |
} | |
class Constant(val value:Double): Exp { | |
override fun eval(): Double = value | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!modulesToBuild=extensions/webjars-locator/deployment,extensions/logging-json/deployment,extensions/smallrye-opentracing/deployment,extensions/smallrye-reactive-messaging/deployment,extensions/vertx/deployment,extensions/spring-data-jpa/deployment,extensions/spring-di/deployment,extensions/spring-web/deployment,extensions/spring-boot-properties/deployment,extensions/spring-security/deployment,extensions/reactive-streams-operators/smallrye-reactive-streams-operators/deployment,extensions/smallrye-reactive-messaging-amqp/deployment,extensions/smallrye-reactive-messaging-amqp/runtime,extensions/smallrye-reactive-messaging-kafka/deployment,extensions/smallrye-openapi/deployment,extensions/smallrye-jwt/deployment,extensions/smallrye-fault-tolerance/deployment,extensions/smallrye-context-propagation/deployment,extensions/rest-client/deployment,extensions/scheduler/deployment,extensions/oidc/deployment,extensions/quartz/deployment,extensions/reactive-pg-client/deployment,extensions/keycloak-authorization/deployment |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
PncBuild pncBuild = getBuild(generationData.getSourceBuild()); | |
ArtifactWrapper bomArtifact = pncBuild.findArtifactByFileName(generationData.getSourceArtifact()); | |
String bomConstraintVersion = bomArtifact.toGAV().getVersion(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!modulesToBuild=extensions/webjars-locator/deployment,extensions/logging-json/deployment,extensions/smallrye-opentracing/deployment,extensions/smallrye-reactive-messaging/deployment,extensions/vertx/deployment,extensions/spring-data-jpa/deployment,extensions/spring-di/deployment,extensions/spring-web/deployment,extensions/spring-boot-properties/deployment,extensions/spring-security/deployment,extensions/reactive-streams-operators/smallrye-reactive-streams-operators/deployment,extensions/smallrye-reactive-messaging-amqp/deployment,extensions/smallrye-reactive-messaging-amqp/runtime,extensions/smallrye-reactive-messaging-kafka/deployment,extensions/smallrye-openapi/deployment,extensions/smallrye-jwt/deployment,extensions/smallrye-fault-tolerance/deployment,extensions/smallrye-context-propagation/deployment,extensions/rest-client/deployment,extensions/scheduler/deployment,extensions/oidc/deployment,extensions/quartz/deployment,extensions/reactive-pg-client/deployment,extensions/keycloak-authorization/deployment |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private fun extractNumber(numString: String) = numString.toDoubleOrNull() | |
private fun isValue(expression: String): Boolean { | |
val validChars = "1234567890.-" | |
for (i in expression.indices) { | |
val char = expression[i] | |
if (char !in validChars) return false | |
if (expression.count { it == '.' } > 1) return false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Checking for function in expression | |
val position = expression.indexOf('(') | |
if (position > 0 && expression.last() == ')'){ | |
val funString = expression.substring(0,position) | |
val value= evaluate(expression.substring(position+1,expression.lastIndex)) | |
val res = evaluateFunction(funString, value) | |
return res | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
for (operator in Operators.values()) { | |
var position = expression.reversed().lastIndexOf(operator.sign) | |
while (position > 0) { | |
if (isOperator(operator, expression, position)) { | |
... | |
... | |
} | |
// check again for same operator till the previous position | |
if (position > 0) { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private fun isOperator(operator: Operators, expression: String, position: Int): Boolean { | |
if (operator == Operators.PLUS) { | |
// Check the previous operator | |
if (expression[position - 1] == 'E') { | |
if (position >= 2) { | |
return false | |
} | |
} else { | |
return true | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private fun String.lastIndexOf(char: Char): Int { | |
var bOpen = 0 // count for open bracket | |
var bClose = 0 // count for close bracket | |
for (i in this.indices) { | |
val currChar = this[i] | |
when { | |
currChar == char && bOpen == bClose -> | |
return this.length - i - 1 | |
currChar == '(' -> bOpen++ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// evaluate function | |
private fun evaluate(expression: String): Double? { | |
for (operator in Operators.values()) { | |
/* | |
reversed() : find the operator from right side (last) | |
for cases : 20/10/2, 12-4-4 | |
*/ | |
var position = expression.reversed().lastIndexOf(operator.sign) | |
if(position>0){ | |
val partialExpressions = expression.split(position) |
NewerOlder