Skip to content

Commit

Permalink
Merge branch 'asyncapi:master' into ag_tests
Browse files Browse the repository at this point in the history
  • Loading branch information
devilkiller-ag authored Jan 1, 2024
2 parents bfb5f0c + 014fc78 commit 6254d2f
Show file tree
Hide file tree
Showing 3 changed files with 123 additions and 0 deletions.
41 changes: 41 additions & 0 deletions docs/constraints/Kotlin.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Kotlin Constraints

These are the Kotlin specific constraints applied to the MetaModel before reaching the presets. [Read here to get a more general idea on the overall process](https://github.com/asyncapi/modelina/blob/master/docs/input-processing.md) of converting a MetaModel to a ConstrainedMetaModel.

## Model Naming
These are the constraints that is applied to model naming. The `Rule key` is what you can use in the options to overwrite the default behavior. See [constraint customization](https://github.com/asyncapi/modelina/blob/master/docs/README.md).

|Rule key|Rule|Resolution|
|---|---|---|
|NO_SPECIAL_CHAR|No special characters| Special characters are replaced by their name, for example `!` is replaced with `exclamation`. For kotlin `_` is an exception to this rule. |
|NO_NUMBER_START_CHAR|No numbers as starting characters|Default behavior is pre pending `number_` in front of the first character. |
|NO_EMPTY_VALUE|No empty values|Default behavior is to use `empty` as name. |
|NO_RESERVED_KEYWORDS|No reserved keywords|Kotlin has a list of reserved keywords ([see the full list here](https://github.com/asyncapi/modelina/blob/master/src/generators/kotlin/Constants.ts))|
|NAMING_FORMATTER|Must be formatted equally|Model name is formatted using pascal case.|

## Property naming
These are the constraints that is applied to object properties and the naming of them. The `Rule key` is what you can use in the options to overwrite the default behavior. See [constraint customization](https://github.com/asyncapi/modelina/blob/master/docs/README.md).
|Rule key|Rule|Resolution|
|---|---|---|
|NO_SPECIAL_CHAR|No special characters| Special characters are replaced by their name, for example `!` is replaced with `exclamation`. For kotlin `_` is an exception to this rule. |
|NO_NUMBER_START_CHAR|No numbers as starting characters|Default behavior is pre pending `number_` in front of the first character. |
|NO_EMPTY_VALUE|No empty values|Default behavior is to use `empty` as name. |
|NO_RESERVED_KEYWORDS|No reserved keywords|Kotlin has a list of reserved keywords ([see the full list here](https://github.com/asyncapi/modelina/blob/master/src/generators/kotlin/Constants.ts))|
|NAMING_FORMATTER|Must be formatted equally|Property name is formatted using camel case. |
|NO_DUPLICATE_PROPERTIES|No duplicate properties|If any of the above constraints changes the property name, we must make sure that no duplicates exist within the same object. If any is encountered `reserved_` is pre-pended. This is done recursively until no duplicates are found. |


## Enum key constraints
These are the constraints that is applied to enum keys. The `Rule key` is what you can use in the options to overwrite the default behavior. See [constraint customization](https://github.com/asyncapi/modelina/tree/master/docs/README.md).

|Rule key|Rule|Resolution|
|---|---|---|
|NO_SPECIAL_CHAR|No special characters| Special characters are replaced by their name, for example `!` is replaced with `exclamation`. For kotlin `_` is an exception to this rule. |
|NO_NUMBER_START_CHAR|No numbers as starting characters|Default behavior is pre pending `number_` in front of the first character. |
|NO_EMPTY_VALUE|No empty values|Default behavior is to use `empty` as name. |
|NO_RESERVED_KEYWORDS|No reserved keywords|Kotlin has a list of reserved keywords ([see the full list here](https://github.com/asyncapi/modelina/blob/master/src/generators/kotlin/Constants.ts))|
|NAMING_FORMATTER|Must be formatted equally|Enum name is formatted using constant case. |
|NO_DUPLICATE_KEYS|No duplicate enum keys|If any of the above constraints changes the enum key, we must make sure that no duplicates exist within the same enum. If any is encountered `reserved_` is pre-pended. This is done recursively until no duplicates are found. |

## Constant
These are the constraints that are applied to constants. Currently, there are no hooks one can overwrite inside it.
41 changes: 41 additions & 0 deletions docs/constraints/PHP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# PHP Constraints

These are the PHP specific constraints applied to the MetaModel before reaching the presets. [Read here to get a more general idea on the overall process](https://github.com/asyncapi/modelina/blob/master/docs/input-processing.md) of converting a MetaModel to a ConstrainedMetaModel.

## Model Naming
These are the constraints that is applied to model naming. The `Rule key` is what you can use in the options to overwrite the default behavior. See [constraint customization](https://github.com/asyncapi/modelina/blob/master/docs/README.md#Customization).

|Rule key|Rule|Resolution|
|---|---|---|
|NO_SPECIAL_CHAR|No special characters| Special characters are replaced by their name, for example `!` is replaced with `exclamation`. For PHP `_` is an exception to this rule. |
|NO_NUMBER_START_CHAR|No numbers as starting characters|Default behavior is pre pending `number_` in front of the first character. |
|NO_EMPTY_VALUE|No empty values|Default behavior is to use `empty` as name. |
|NO_RESERVED_KEYWORDS|No reserved keywords|Scala has a list of reserved keywords ([see the full list here](https://github.com/asyncapi/modelina/blob/master/src/generators/php/Constants.ts))|
|NAMING_FORMATTER|Must be formatted equally|Model name is formatted using pascal case.|

## Property naming
These are the constraints that is applied to object properties and the naming of them. The `Rule key` is what you can use in the options to overwrite the default behavior. See [constraint customization](https://github.com/asyncapi/modelina/blob/master/docs/README.md#Customization).
|Rule key|Rule|Resolution|
|---|---|---|
|NO_SPECIAL_CHAR|No special characters| Special characters are replaced by their name, for example `!` is replaced with `exclamation`. For PHP `_` is an exception to this rule. |
|NO_NUMBER_START_CHAR|No numbers as starting characters|Default behavior is pre pending `number_` in front of the first character. |
|NO_EMPTY_VALUE|No empty values|Default behavior is to use `empty` as name. |
|NO_RESERVED_KEYWORDS|No reserved keywords|Scala has a list of reserved keywords ([see the full list here](https://github.com/asyncapi/modelina/blob/master/src/generators/php/Constants.ts))|
|NAMING_FORMATTER|Must be formatted equally|Property name is formatted using camel case. |
|NO_DUPLICATE_PROPERTIES|No duplicate properties|If any of the above constraints changes the property name, we must make sure that no duplicates exist within the same object. If any is encountered `reserved_` is pre-pended. This is done recursively until no duplicates are found.|


## Enum key constraints
These are the constraints that is applied to enum keys. The `Rule key` is what you can use in the options to overwrite the default behavior. See [constraint customization](https://github.com/asyncapi/modelina/tree/master/docs/README.md#Customization).

|Rule key|Rule|Resolution|
|---|---|---|
|NO_SPECIAL_CHAR|No special characters| Special characters are replaced by their name, for example `!` is replaced with `exclamation`. For PHP `_` is an exception to this rule. |
|NO_NUMBER_START_CHAR|No numbers as starting characters|Default behavior is pre pending `number_` in front of the first character. |
|NO_EMPTY_VALUE|No empty values|Default behavior is to use `empty` as name. |
|NO_RESERVED_KEYWORDS|No reserved keywords|Scala has a list of reserved keywords ([see the full list here](https://github.com/asyncapi/modelina/blob/master/src/generators/php/Constants.ts))|
|NAMING_FORMATTER|Must be formatted equally|Enum name is formatted using constant case. |
|NO_DUPLICATE_KEYS|No duplicate enum keys|If any of the above constraints changes the enum key, we must make sure that no duplicates exist within the same enum. If any is encountered `reserved_` is pre-pended. This is done recursively until no duplicates are found.|

## Constant
These are the constraints that are applied to constants. Currently, there are no hooks one can overwrite inside it.
41 changes: 41 additions & 0 deletions docs/constraints/Scala.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Scala Constraints

These are the Scala specific constraints applied to the MetaModel before reaching the presets. [Read here to get a more general idea on the overall process](https://github.com/asyncapi/modelina/blob/master/docs/input-processing.md) of converting a MetaModel to a ConstrainedMetaModel.

## Model Naming
These are the constraints that is applied to model naming. The `Rule key` is what you can use in the options to overwrite the default behavior. See [constraint customization](https://github.com/asyncapi/modelina/blob/master/docs/README.md#Customization).

|Rule key|Rule|Resolution|
|---|---|---|
|NO_SPECIAL_CHAR|No special characters| Special characters are replaced by their name, for example `!` is replaced with `exclamation`. For scala `_` is an exception to this rule. |
|NO_NUMBER_START_CHAR|No numbers as starting characters|Default behavior is pre pending `number_` in front of the first character|
|NO_EMPTY_VALUE|No empty values|Default behavior is to use `empty` as name. |
|NO_RESERVED_KEYWORDS|No reserved keywords|Scala has a list of reserved keywords ([see the full list here](https://github.com/asyncapi/modelina/blob/master/src/generators/scala/Constants.ts))|
|NAMING_FORMATTER|Must be formatted equally|Model name is formatted using pascal case.|

## Property naming
These are the constraints that is applied to object properties and the naming of them. The `Rule key` is what you can use in the options to overwrite the default behavior. See [constraint customization](https://github.com/asyncapi/modelina/blob/master/docs/README.md#Customization).
|Rule key|Rule|Resolution|
|---|---|---|
|NO_SPECIAL_CHAR|No special characters| Special characters are replaced by their name, for example `!` is replaced with `exclamation`. For scala `_` is an exception to this rule. |
|NO_NUMBER_START_CHAR|No numbers as starting characters|Default behavior is pre pending `number_` in front of the first character. |
|NO_EMPTY_VALUE|No empty values|Default behavior is to use `empty` as name. |
|NO_RESERVED_KEYWORDS|No reserved keywords|Scala has a list of reserved keywords ([see the full list here](https://github.com/asyncapi/modelina/blob/master/src/generators/scala/Constants.ts))|
|NAMING_FORMATTER|Must be formatted equally|Property name is formatted using camel case. |
|NO_DUPLICATE_PROPERTIES|No duplicate properties|If any of the above constraints changes the property name, we must make sure that no duplicates exist within the same object. If any is encountered `reserved_` is pre-pended. This is done recursively until no duplicates are found. |


## Enum key constraints
These are the constraints that is applied to enum keys. The `Rule key` is what you can use in the options to overwrite the default behavior. See [constraint customization](https://github.com/asyncapi/modelina/tree/master/docs/README.md#Customization).

|Rule key|Rule|Resolution|
|---|---|---|
|NO_SPECIAL_CHAR|No special characters| Special characters are replaced by their name, for example `!` is replaced with `exclamation`. For scala `_` is an exception to this rule. |
|NO_NUMBER_START_CHAR|No numbers as starting characters|Default behavior is pre pending `number_` in front of the first character. |
|NO_EMPTY_VALUE|No empty values|Default behavior is to use `empty` as name. |
|NO_RESERVED_KEYWORDS|No reserved keywords|Scala has a list of reserved keywords ([see the full list here](https://github.com/asyncapi/modelina/blob/master/src/generators/scala/Constants.ts))|
|NAMING_FORMATTER|Must be formatted equally|Enum name is formatted using constant case. |
|NO_DUPLICATE_KEYS|No duplicate enum keys|If any of the above constraints changes the enum key, we must make sure that no duplicates exist within the same enum. If any is encountered `reserved_` is pre-pended. This is done recursively until no duplicates are found.|

## Constant
These are the constraints that are applied to constants. Currently, there are no hooks one can overwrite inside it.

0 comments on commit 6254d2f

Please sign in to comment.