net.guoyk:azuki

A simple Java Map evaluation tool

License

License

Categories

Categories

Net
GroupId

GroupId

net.guoyk
ArtifactId

ArtifactId

azuki
Last Version

Last Version

1.1.0
Release Date

Release Date

Type

Type

jar
Description

Description

net.guoyk:azuki
A simple Java Map evaluation tool
Project URL

Project URL

https://github.com/guoyk93/azuki
Source Code Management

Source Code Management

http://github.com/guoyk93/azuki/tree/master

Download azuki

How to add to project

<!-- https://jarcasting.com/artifacts/net.guoyk/azuki/ -->
<dependency>
    <groupId>net.guoyk</groupId>
    <artifactId>azuki</artifactId>
    <version>1.1.0</version>
</dependency>
// https://jarcasting.com/artifacts/net.guoyk/azuki/
implementation 'net.guoyk:azuki:1.1.0'
// https://jarcasting.com/artifacts/net.guoyk/azuki/
implementation ("net.guoyk:azuki:1.1.0")
'net.guoyk:azuki:jar:1.1.0'
<dependency org="net.guoyk" name="azuki" rev="1.1.0">
  <artifact name="azuki" type="jar" />
</dependency>
@Grapes(
@Grab(group='net.guoyk', module='azuki', version='1.1.0')
)
libraryDependencies += "net.guoyk" % "azuki" % "1.1.0"
[net.guoyk/azuki "1.1.0"]

Dependencies

test (2)

Group / Artifact Type Version
junit : junit jar 4.12
org.yaml : snakeyaml jar 1.18

Project Modules

There are no modules declared in this project.

Azuki

BMC Donate Build Status GitHub

<dependency>
  <groupId>net.guoyk</groupId>
  <artifactId>azuki</artifactId>
  <version>1.1</version>
</dependency>

Azuki is a simple Java Map evaluation tool

Example

Create a Expression using Azuki.build(Object), passing a Map like this

not:
  and:
    - equals:
      key1: value1
      key2: value2
    - startsWith:
      key3: value3
      key4: value4

Then execute the Expression with Expression#validate(Map)

Passing a Map like this

key1: value1
key2: value2
key3: value3hello
key4: value4world

The Expression will evaluate the map like this

!(
  (
    map.get("key1").equals("value1")
    &&
    map.get("key2").equals("value2")
  )
  &&
  (
    map.get("key3").startsWith("value3")
    &&
    map.get("key4").startsWith("value4")
  )
 )

and returns false in this case.

All Expressions Can be Infinitely Nested

Supported Expressions

Evaluation Expressions

Evaluation Expressions is presented as a Map, it execute the actual evaluation.

If all Key-Value pairs passed, the expression returns true.

  • equals
  • equalsIgnoreCase
  • contains
  • containsIgnoreCase
  • startsWith
  • startsWithIgnoreCase
  • endsWith
  • endsWithIgnoreCase
  • regexp
  • exists

For exists, you can check both existence and non-existence

exists:
  key1: t
  key2: true
  key3: yes
  key4: f
  key5: false
  key6: no

This will check existence of key1-3 and non-existence of key4-6

string starts with f, n will be regarded as non-existence validation.

Combination Expressions

Combination Expressions accept a array of expressions, used for combination

  • all
  • any
  • none

Wrapper Expressions

Wrapper Expressions wraps one single expression, basically for not operation

  • not

Credits

Guo Y.K., MIT License

Versions

Version
1.1.0