Java utility library (with static methods) to parse array-based nested expressions.
In the Packages section, select the package expression-utils-java.lib
Follow the installation instructions
Or, download the library jar file and include in your Java project
See the Javadoc for detailed documentation.
See the test cases for detailed usage examples.
import in .eko .exprutils .ExpressionParser ;
// Single expression example: 2 + 3
(int )ExpressionParser .parseExpression ("['+', 2, 3]" ); // returns 5
// Nested expression example: 2 + (3 * 4)
(int )ExpressionParser .parseExpression ("['+', 2, ['*', 3, 4]]" ); // returns 14
Class
Method
Inputs
Output
Desc
ExpressionParser
parseExpression()
expression (string encoded Json array)
parsed value (Object)
returns parses an expression
isValidOperator()
String operator
boolean
Checks if the provided operator is supported by the expressionParser
interpolate()
String expr, Map<String, String> data
interpolated string
Interpolate/replace values of dollar-curly-brace-wrapped variables into a string
Hash
getHash()
String input, String type
hash
Generate hash of a string using the type
algorithm (MD5, SHA-256, etc)
sha256()
String input
sha-256 hash
Generate SHA-256 hash of a string
sha512()
String input
sha-512 hash
Generate SHA-512 hash of a string
md5()
String input
md5 hash
Generate md5 hash of a string
JsonObj
get()
String/JSONObject obj, String key, String default_value
value (Object)
Retrieve deep/nested value from a JSON Object
set()
String obj, String key, Object value
object (String)
Set a key-value pair deep within a JSON Object
JWT
generate()
...
generated token
Generate JWT (token) with the given configuration
parse()
...
claim map
Validates & parses a JWT (token)
Operators supported by the parseExpression() function:
Operator
Purpose
Expression Example
Result
+
Add
['+', 2, 3]
5
-
Subtract
['-', 3, 2]
1
*
Multiply
['*', 2, 3]
6
/
Divide
['/', 4, 2]
2
CONCAT
Concatenate string
['CONCAT', 'Hello', 'World']
HelloWorld
GET
Get nested-value from object
['GET', {'b':{'d':{'e':3}}}, 'b.d.e']
3
SET
Set nested-value into object
['SET', {'b':{'d':{}}}, 'b.d.e', 4]
{'b':{'d':{'e':4}}}
SHA256
Get sha-256 hash
['SHA256', 'hello world']
b94d27...cde9
SHA512
Get sha-512 hash
['SHA512', 'hello world']
309ecc48...cd76f
MD5
Get MD5 hash
['MD5', 'hello world']
5eb63...5acdc3
JWT
Generate JWT
['JWT', '<secret-key>', 'HS256', '{"issuer":...}']
generated token
Make sure to update the version
number in the lib/build.gradle file
Merge changes into the main branch
Goto the Releases section and create a new release
A new build will automatically be created and published to Github Packages