As a developer, I want to reduce mutability so that the codebase is more concise and maintainable.
Description/Use Case
ConfigSchema and the classes that inherit it are derived from preconfigured sources that are not expected to change. We should ensure the implementation is immutable to enforce this.
Risks/Impacts/Considerations
All instances in the codebase where schemas are altered need to be evaluated and refactored.
Dev Notes
The main use case for altering a schema object is to perform merges, but all objects involved in the merge should not be mutable. A suggestion would be to alter merges so that they return a new schema object rather than alter existing objects.
Acceptance Criteria
ConfigSchema and ConfigSchemaElement are immutable.
User Story
As a developer, I want to reduce mutability so that the codebase is more concise and maintainable.
Description/Use Case
ConfigSchema
and the classes that inherit it are derived from preconfigured sources that are not expected to change. We should ensure the implementation is immutable to enforce this.Risks/Impacts/Considerations
All instances in the codebase where schemas are altered need to be evaluated and refactored.
Dev Notes
The main use case for altering a schema object is to perform merges, but all objects involved in the merge should not be mutable. A suggestion would be to alter merges so that they return a new schema object rather than alter existing objects.
Acceptance Criteria
ConfigSchema
andConfigSchemaElement
are immutable.