Conversation
lolgab
commented
Jan 14, 2020
- Bump major version due to breaking changes in previous versions
96b4424 to
782b905
Compare
- Bump major version due to breaking changes in previous versions
| val parameters: Option[Set[Parameter.Specification]] | ||
| val languages: Option[Set[Language]] | ||
|
|
||
| def copy(patternId: Pattern.Id = patternId, |
There was a problem hiding this comment.
the only implementation of Specification is SpecificationImpl, or we do have a foreseeable use case for keeping it as a trait or, since we are breaking already, I propose to change Specification to be a case class (it will have copy and companion apply automatically created), this will make the code cleaner and remove a possibly un-necessary abstraction level.
There was a problem hiding this comment.
I think the reason for it to be a trait was this:
The validation of subcategories.
Can you check if that makes sense to you?
There was a problem hiding this comment.
I refactored Specification to be a case class. Now it is allowed to instantiate a Specification where Security subcategory is used as subcategory of another Category (for example CodeStyle) without exceptions being thrown.