Support complex objects as decorator argument values
Opened this issue · 1 comments
Feature Request 🛍️
Currently decorator arguments are limited to:
- String
- Number
- Boolean
- Type reference
It would be useful to support a stringified arbitrary object as a decorator argument value.
Use Case
Automated systems creating models and storing complex decorator arguments on the model.
Possible Solution
namespace org.acme@1.0.0
concept TextFormat extends Decorator {
o String font
o Integer fontSize
o Boolean isBold optional
o Boolean isItalic optonal
}
@TextFormat({"font": "arial", "fontSize" : 12, "isBold" : true})
concept TextField {
o String value
}
Context
When decorator arguments become complex they are hard to read, because they are based on positional arguments.
Detailed Description
We would have to extend the CTO grammar to support JSON objects within decorator arguments, marshalling them into a new type of DecoratorLiteral
, or extending the DecoratorStringLiteral
to carry the JSON value as a string.
Extend the logic that validates decorator arguments to check the structure of the JSON conforms to the related decorator definition.
This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 10 days.