Skip to content

Latest commit

 

History

History
748 lines (354 loc) · 41.6 KB

net.adamec.lib.common.dmn.engine.parser__src1fa.md

File metadata and controls

748 lines (354 loc) · 41.6 KB

DMN Engine Documentation

Classes

Name Modifier Summary
DmnParser public DMN Model XML parser
DmnParserException public Exception thrown while parsing the DMN Model
SfeelParser public S-FEEL simple parser

Enums

Name Modifier Summary
DmnParser.DmnVersionEnum public DMN standard version to be used by DmnParser

Go to namespaces or types

Namespace: net.adamec.lib.common.dmn.engine.parser
Assembly: net.adamec.lib.common.dmn.engine
Sources: parser\DmnParser.cs

DMN Model XML parser

public class DmnParser

Inheritance: object

Constants

Name Value Summary
XmlNamespaceDmn11 http://www.omg.org/spec/DMN/20151101/dmn.xsd XML namespace for DMN 1.1 documents
XmlNamespaceDmn13 https://www.omg.org/spec/DMN/20191111/MODEL/ XML namespace for DMN 1.3 documents

Fields

Name Modifier Summary
DmnDefinitionsSerializer protected static DMN Model XML serializer for DMN v1.1
DmnDefinitionsSerializer13 protected static DMN Model XML serializer for DMN v1.3
Logger internal static

Methods

Name Modifier Summary
Parse(string, DmnParser.DmnVersionEnum) public static Parse the file with DMN Model XML definition based on DMN standard version .
Parse13(string) public static Parse the file with DMN Model XML definition based on DMN standard version 1.3 .
Parse13ext(string) public static Parse the file with DMN Model XML definition based on DMN standard version 1.3 with extensions .
ParseString(string, DmnParser.DmnVersionEnum) public static Parse the string with DMN Model XML definition based on DMN standard version .
ParseString13(string) public static Parse the string with DMN Model XML definition based on DMN standard version 1.3 .
ParseString13ext(string) public static Parse the string with DMN Model XML definition based on DMN standard version 1.3 with extensions .

Go to namespaces or types

Namespace: net.adamec.lib.common.dmn.engine.parser
Assembly: net.adamec.lib.common.dmn.engine
Type: DmnParser
Sources: parser\DmnParser.cs

DMN Model XML serializer for DMN v1.1

protected static XmlSerializer DmnDefinitionsSerializer

Field value

System.Xml.Serialization.XmlSerializer

Go to namespaces or types

Namespace: net.adamec.lib.common.dmn.engine.parser
Assembly: net.adamec.lib.common.dmn.engine
Type: DmnParser
Sources: parser\DmnParser.cs

DMN Model XML serializer for DMN v1.3

protected static XmlSerializer DmnDefinitionsSerializer13

Field value

System.Xml.Serialization.XmlSerializer

Go to namespaces or types

Namespace: net.adamec.lib.common.dmn.engine.parser
Assembly: net.adamec.lib.common.dmn.engine
Type: DmnParser
Sources: parser\DmnParser.cs

internal static ILogger Logger

Field value

net.adamec.lib.common.core.logging.ILogger

Go to namespaces or types

Namespace: net.adamec.lib.common.dmn.engine.parser
Assembly: net.adamec.lib.common.dmn.engine
Type: DmnParser
Sources: parser\DmnParser.cs

XML namespace for DMN 1.1 documents

public const string XmlNamespaceDmn11 = "http://www.omg.org/spec/DMN/20151101/dmn.xsd"

Field value

string

Go to namespaces or types

Namespace: net.adamec.lib.common.dmn.engine.parser
Assembly: net.adamec.lib.common.dmn.engine
Type: DmnParser
Sources: parser\DmnParser.cs

XML namespace for DMN 1.3 documents

public const string XmlNamespaceDmn13 = "https://www.omg.org/spec/DMN/20191111/MODEL/"

Field value

string

Go to namespaces or types

Namespace: net.adamec.lib.common.dmn.engine.parser
Assembly: net.adamec.lib.common.dmn.engine
Type: DmnParser
Sources: parser\DmnParser.cs

Parse the file with DMN Model XML definition based on DMN standard version .

public static DmnModel Parse(string filePath, DmnParser.DmnVersionEnum dmnVersion = 0)

Method parameters

string filePath
Path to the file to be parsed
net.adamec.lib.common.dmn.engine.parser.DmnParser.DmnVersionEnum dmnVersion
DMN standard version to be used for parsing. Version 1.1 ( V1_1 is used as default if the version is not provided.
Return value
net.adamec.lib.common.dmn.engine.parser.dto.DmnModel
Parsed DMN Model

Exceptions

[DmnParserException](net.adamec.lib.common.dmn.engine.parser__src1fa.md#t-net.adamec.lib.common.dmn.engine.parser.dmnparserexception__1bq7ch7)
Missing file path ( filePath is null or empty)
[DmnParserException](net.adamec.lib.common.dmn.engine.parser__src1fa.md#t-net.adamec.lib.common.dmn.engine.parser.dmnparserexception__1bq7ch7)
File doesn't exist
[DmnParserException](net.adamec.lib.common.dmn.engine.parser__src1fa.md#t-net.adamec.lib.common.dmn.engine.parser.dmnparserexception__1bq7ch7)
Can't parse file

Go to namespaces or types

Namespace: net.adamec.lib.common.dmn.engine.parser
Assembly: net.adamec.lib.common.dmn.engine
Type: DmnParser
Sources: parser\DmnParser.cs

Parse the file with DMN Model XML definition based on DMN standard version 1.3 .

public static DmnModel Parse13(string filePath)

Method parameters

string filePath
Path to the file to be parsed
Return value
net.adamec.lib.common.dmn.engine.parser.dto.DmnModel
Parsed DMN Model

Exceptions

[DmnParserException](net.adamec.lib.common.dmn.engine.parser__src1fa.md#t-net.adamec.lib.common.dmn.engine.parser.dmnparserexception__1bq7ch7)
Missing file path ( filePath is null or empty)
[DmnParserException](net.adamec.lib.common.dmn.engine.parser__src1fa.md#t-net.adamec.lib.common.dmn.engine.parser.dmnparserexception__1bq7ch7)
File doesn't exist
[DmnParserException](net.adamec.lib.common.dmn.engine.parser__src1fa.md#t-net.adamec.lib.common.dmn.engine.parser.dmnparserexception__1bq7ch7)
Can't parse file

Go to namespaces or types

Namespace: net.adamec.lib.common.dmn.engine.parser
Assembly: net.adamec.lib.common.dmn.engine
Type: DmnParser
Sources: parser\DmnParser.cs

Parse the file with DMN Model XML definition based on DMN standard version 1.3 with extensions .

public static DmnModel Parse13ext(string filePath)

Method parameters

string filePath
Path to the file to be parsed
Return value
net.adamec.lib.common.dmn.engine.parser.dto.DmnModel
Parsed DMN Model

Exceptions

[DmnParserException](net.adamec.lib.common.dmn.engine.parser__src1fa.md#t-net.adamec.lib.common.dmn.engine.parser.dmnparserexception__1bq7ch7)
Missing file path ( filePath is null or empty)
[DmnParserException](net.adamec.lib.common.dmn.engine.parser__src1fa.md#t-net.adamec.lib.common.dmn.engine.parser.dmnparserexception__1bq7ch7)
File doesn't exist
[DmnParserException](net.adamec.lib.common.dmn.engine.parser__src1fa.md#t-net.adamec.lib.common.dmn.engine.parser.dmnparserexception__1bq7ch7)
Can't parse file

Go to namespaces or types

Namespace: net.adamec.lib.common.dmn.engine.parser
Assembly: net.adamec.lib.common.dmn.engine
Type: DmnParser
Sources: parser\DmnParser.cs

Parse the string with DMN Model XML definition based on DMN standard version .

public static DmnModel ParseString(string dmnDefinition, DmnParser.DmnVersionEnum dmnVersion = 0)

Method parameters

string dmnDefinition
DMN Model XML definition
net.adamec.lib.common.dmn.engine.parser.DmnParser.DmnVersionEnum dmnVersion
DMN standard version to be used for parsing. Version 1.1 ( V1_1 is used as default if the version is not provided.
Return value
net.adamec.lib.common.dmn.engine.parser.dto.DmnModel
Parsed DMN Model

Exceptions

[DmnParserException](net.adamec.lib.common.dmn.engine.parser__src1fa.md#t-net.adamec.lib.common.dmn.engine.parser.dmnparserexception__1bq7ch7)
Missing DMN Model definition ( dmnDefinition is null or empty)
[DmnParserException](net.adamec.lib.common.dmn.engine.parser__src1fa.md#t-net.adamec.lib.common.dmn.engine.parser.dmnparserexception__1bq7ch7)
Can't parse DMN definition

Go to namespaces or types

Namespace: net.adamec.lib.common.dmn.engine.parser
Assembly: net.adamec.lib.common.dmn.engine
Type: DmnParser
Sources: parser\DmnParser.cs

Parse the string with DMN Model XML definition based on DMN standard version 1.3 .

public static DmnModel ParseString13(string dmnDefinition)

Method parameters

string dmnDefinition
DMN Model XML definition
Return value
net.adamec.lib.common.dmn.engine.parser.dto.DmnModel
Parsed DMN Model

Exceptions

[DmnParserException](net.adamec.lib.common.dmn.engine.parser__src1fa.md#t-net.adamec.lib.common.dmn.engine.parser.dmnparserexception__1bq7ch7)
Missing DMN Model definition ( dmnDefinition is null or empty)
[DmnParserException](net.adamec.lib.common.dmn.engine.parser__src1fa.md#t-net.adamec.lib.common.dmn.engine.parser.dmnparserexception__1bq7ch7)
Can't parse DMN definition

Go to namespaces or types

Namespace: net.adamec.lib.common.dmn.engine.parser
Assembly: net.adamec.lib.common.dmn.engine
Type: DmnParser
Sources: parser\DmnParser.cs

Parse the string with DMN Model XML definition based on DMN standard version 1.3 with extensions .

public static DmnModel ParseString13ext(string dmnDefinition)

Method parameters

string dmnDefinition
DMN Model XML definition
Return value
net.adamec.lib.common.dmn.engine.parser.dto.DmnModel
Parsed DMN Model

Exceptions

[DmnParserException](net.adamec.lib.common.dmn.engine.parser__src1fa.md#t-net.adamec.lib.common.dmn.engine.parser.dmnparserexception__1bq7ch7)
Missing DMN Model definition ( dmnDefinition is null or empty)
[DmnParserException](net.adamec.lib.common.dmn.engine.parser__src1fa.md#t-net.adamec.lib.common.dmn.engine.parser.dmnparserexception__1bq7ch7)
Can't parse DMN definition

Go to namespaces or types

Namespace: net.adamec.lib.common.dmn.engine.parser
Assembly: net.adamec.lib.common.dmn.engine
Sources: parser\DmnParserException.cs

Exception thrown while parsing the DMN Model

public class DmnParserException : Exception

Inheritance: object -> System.Exception
Implements: System.Runtime.Serialization.ISerializable

Constructors

Name Modifier Summary
DmnParserException(string, Exception) public Creates DmnParserException with given message and optional innerException

Go to namespaces or types

Namespace: net.adamec.lib.common.dmn.engine.parser
Assembly: net.adamec.lib.common.dmn.engine
Type: DmnParserException
Sources: parser\DmnParserException.cs

Creates DmnParserException with given message and optional innerException

public DmnParserException(string message, Exception innerException = null)

Constructor parameters

string message
Error message
System.Exception innerException
Optional inner exception
Go to namespaces or types

Namespace: net.adamec.lib.common.dmn.engine.parser
Assembly: net.adamec.lib.common.dmn.engine
Sources: parser\SfeelParser.cs

S-FEEL simple parser

public class SfeelParser

Inheritance: object

Fields

Name Modifier Summary
Logger protected static

Properties

Name Modifier Summary
CustomFunctions public static Custom functions to be used in DynamoExpression for S-FEEL functions
CustomFunctionTranslations private static Translations of custom functions from S-FEEL to CustomFunctions For example "date and time" will be "date_and_time"

Constructors

Name Modifier Summary
SfeelParser() private static Initialize SfeelParser . Defines the CustomFunctions for the DynamoExpression interpreter

Methods

Name Modifier Summary
ParseInput(string, string) public static Parses the S-FEEL expression and creates the comparison that will be used in rule evaluation The parser recognize the basic types of S-FEEL expressions: not(expr), simple comparators, multiple values and range
PrepareCustomFunctions() public static Defines the CustomFunctions for the DynamoExpression interpreter.

Go to namespaces or types

Namespace: net.adamec.lib.common.dmn.engine.parser
Assembly: net.adamec.lib.common.dmn.engine
Type: SfeelParser
Sources: parser\SfeelParser.cs

protected static ILogger Logger

Field value

net.adamec.lib.common.core.logging.ILogger

Go to namespaces or types

Namespace: net.adamec.lib.common.dmn.engine.parser
Assembly: net.adamec.lib.common.dmn.engine
Type: SfeelParser
Sources: parser\SfeelParser.cs

Custom functions to be used in DynamoExpression for S-FEEL functions

public static Dictionary<string,Delegate> CustomFunctions { get; }

Property value

Dictionary<string,Delegate>

Go to namespaces or types

Namespace: net.adamec.lib.common.dmn.engine.parser
Assembly: net.adamec.lib.common.dmn.engine
Type: SfeelParser
Sources: parser\SfeelParser.cs

Translations of custom functions from S-FEEL to CustomFunctions For example "date and time" will be "date_and_time"

private static Dictionary<string,string> CustomFunctionTranslations { get; }

Property value

Dictionary<string,string>

Go to namespaces or types

Namespace: net.adamec.lib.common.dmn.engine.parser
Assembly: net.adamec.lib.common.dmn.engine
Type: SfeelParser
Sources: parser\SfeelParser.cs

Initialize SfeelParser . Defines the CustomFunctions for the DynamoExpression interpreter

private static SfeelParser()

Go to namespaces or types

Namespace: net.adamec.lib.common.dmn.engine.parser
Assembly: net.adamec.lib.common.dmn.engine
Type: SfeelParser
Sources: parser\SfeelParser.cs

Parses the S-FEEL expression and creates the comparison that will be used in rule evaluation The parser recognize the basic types of S-FEEL expressions: not(expr), simple comparators, multiple values and range

public static string ParseInput(string expr, string leftSide)

Method parameters

string expr
Source expression
string leftSide
Left side of comparison expression - to what to compare to
Return value
string
Expression to be used in rule evaluation

Exceptions

[DmnParserException](net.adamec.lib.common.dmn.engine.parser__src1fa.md#t-net.adamec.lib.common.dmn.engine.parser.dmnparserexception__1bq7ch7)
Missing expression ( expr is null or empty)
[DmnParserException](net.adamec.lib.common.dmn.engine.parser__src1fa.md#t-net.adamec.lib.common.dmn.engine.parser.dmnparserexception__1bq7ch7)
Missing left side of expression ( leftSide is null or empty)
[DmnParserException](net.adamec.lib.common.dmn.engine.parser__src1fa.md#t-net.adamec.lib.common.dmn.engine.parser.dmnparserexception__1bq7ch7)
Wrong S-FEEL range

Go to namespaces or types

Namespace: net.adamec.lib.common.dmn.engine.parser
Assembly: net.adamec.lib.common.dmn.engine
Type: SfeelParser
Sources: parser\SfeelParser.cs

Defines the CustomFunctions for the DynamoExpression interpreter.

public static void PrepareCustomFunctions()

Return value

void

Go to namespaces or types

Namespace: net.adamec.lib.common.dmn.engine.parser
Assembly: net.adamec.lib.common.dmn.engine
Sources: parser\DmnParser.cs

DMN standard version to be used by DmnParser

[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum DmnParser.DmnVersionEnum: int

Inheritance: object -> ValueType -> Enum
Attributes: System.Diagnostics.CodeAnalysis.SuppressMessageAttribute
Implements: System.IComparable, System.IConvertible, System.IFormattable

Constants

Name Value Summary
V1_1 0 DMN version 1.1
V1_3 1 DMN version 1.3
V1_3ext 2 DMN version 1.3 with extensions

Go to namespaces or types

Namespace: net.adamec.lib.common.dmn.engine.parser
Assembly: net.adamec.lib.common.dmn.engine
Type: DmnParser.DmnVersionEnum
Sources: parser\DmnParser.cs

DMN version 1.1

 V1_1 = 0

Field value

net.adamec.lib.common.dmn.engine.parser.DmnParser.DmnVersionEnum

Go to namespaces or types

Namespace: net.adamec.lib.common.dmn.engine.parser
Assembly: net.adamec.lib.common.dmn.engine
Type: DmnParser.DmnVersionEnum
Sources: parser\DmnParser.cs

DMN version 1.3

 V1_3 = 1

Field value

net.adamec.lib.common.dmn.engine.parser.DmnParser.DmnVersionEnum

Go to namespaces or types

Namespace: net.adamec.lib.common.dmn.engine.parser
Assembly: net.adamec.lib.common.dmn.engine
Type: DmnParser.DmnVersionEnum
Sources: parser\DmnParser.cs

DMN version 1.3 with extensions

 V1_3ext = 2

Field value

net.adamec.lib.common.dmn.engine.parser.DmnParser.DmnVersionEnum

Go to namespaces or types