Giter Site home page Giter Site logo

azuki's Introduction

Azuki

<dependency>
  <groupId>com.yankeguo</groupId>
  <artifactId>azuki</artifactId>
  <version>1.2</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 YANKE, MIT License

azuki's People

Contributors

yankeguo avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.