The implementation of the unit conversion of the data elements is now much more ordered and simple.
The UnitConverter instance is now only part of the DataContainer, and all DataElements hold a reference to it, so that the unit conversion can be made directly inside each DataElement. Therefore, calls and references to the UnitConverter are not needed from any other part of the code.
Additionally, some general code cleaning and optimization has been performed, especially in the custom data element classes.
Also, a new and more complete class diagram has been added with the updated changes.
The implementation of the unit conversion of the data elements is now much more ordered and simple. The UnitConverter instance is now only part of the DataContainer, and all DataElements hold a reference to it, so that the unit conversion can be made directly inside each DataElement. Therefore, calls and references to the UnitConverter are not needed from any other part of the code.
Additionally, some general code cleaning and optimization has been performed, especially in the custom data element classes.
Also, a new and more complete class diagram has been added with the updated changes.