SchemaMap.Tool.Base.Generate
abstract class SchemaMap.Tool.Base.Generate
This class will evolve, but was started based on the server side code in %MPRL.UI.NewWizard, %MPRL.Model.linkageDefinition, and %MPRL.UI.AuditLogDebug, and DTL classes in the package HS.FHIR.DTL.ToSDA.Method Inventory
- AddClassParametersXML()
- AddTypeNewResource()
- AddTypeNewResourceReference()
- AddTypePrimitiveExtension()
- AddTypeResourceType()
- AddTypeString()
- DeleteClass()
- GetPropertyValueType()
- IsClassNameValid()
- PathToClassNameForModel()
Methods
Often, ancestor and parent are left blank. That is expected. When ancestor and parent are not provided, we make a decision solely based on the path.
In some calls to this method from CreateObject, non-empty values are provided for ancestor and/or parent. When this is so, it means CreateObject is inputting the childType (path) corresponding to a childPath (parent) and path (ancestor) in a 3-level relationship. Such relationships can produce circular or infinitely nested property definitions and subclassing relationships. The cases that cause this are known, and this method detects them. To detect these cases accurately, this code examines the CreateObject childType (path) in relation to the childPath (parent) and path (ancestor).
Sometimes, this examination of relationships looks at the childType (path)'s data type, and the data type of that data type, a 4th and 5th level in the set of relationships. The result of this analysis becomes a flag returned in the output argument complexTypeCase.