From e3401dd83dbef591a71e090598cf7fef74cdbdcd Mon Sep 17 00:00:00 2001 From: seanpmaxwell Date: Sun, 3 Mar 2019 15:58:46 -0800 Subject: [PATCH] creation of Decision Table class cont --- .idea/workspace.xml | 141 +++++++++--------- README.md | 2 + .../src/rule-files/VisitorRules.ots | Bin 15318 -> 15258 bytes 3 files changed, 71 insertions(+), 72 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 159d657..cb40886 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,10 +2,9 @@ - + + - - @@ -41,9 +40,6 @@ - - - @@ -51,7 +47,7 @@ - + @@ -96,22 +92,22 @@ - + - - + + - + - + @@ -123,8 +119,8 @@ - - + + @@ -187,9 +183,9 @@ @@ -295,12 +291,13 @@ - + + - @@ -323,7 +320,7 @@ - + @@ -412,8 +409,8 @@ - + @@ -436,20 +433,6 @@ - - - - - - - - - - - - - - @@ -457,41 +440,10 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -507,7 +459,7 @@ - + @@ -515,16 +467,30 @@ - + - - + + + + + + + + + + + + + + + + - + @@ -532,6 +498,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/README.md b/README.md index e55172b..64eb216 100644 --- a/README.md +++ b/README.md @@ -10,3 +10,5 @@ https://github.com/CacheControl/json-rules-engine // mention that it's not a good practice to set strings in directly to the spreadsheet and should // use a constants class. This prevents Product Owners from inputing bad values into the spreadsheet. + +// Class.method() to not use a built in operator in condition. Class must be a fact or must be imported. diff --git a/sample-project/src/rule-files/VisitorRules.ots b/sample-project/src/rule-files/VisitorRules.ots index 6975a2394e3951d4a960e7a2f58b089e01c74303..361860049fa26a4f81b16ca2c99396d79f9fae20 100644 GIT binary patch delta 6341 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 Kz)bXy^Zx-DnZ8{B