Open tobolar opened 6 years ago
I could prepare a PR if there is a consent on this issue.
I had the same thoughts when testing the new adaptors. But given that the old rotational adaptors are located in Components (and not in Interfaces), I stopped worrying as it is at least consistent with all the non-partial adaptors always located in Components.
Thus, I'd keep the adaptors as is for v3.2.3.
I want to mention this before releasing v3.2.3. The location is consistent now but is it correct as well?
So we can
And there is also this opposite case of Mechanics.MultiBody.Interfaces.FlangeWithBearingAdaptor
.
We can leave this issue open for a while and keep discussion running.
I don't think we can move them for 3.2.3 as this would break backward compatibility.
Both partial adaptors and extended general adaptors are newly introduced in v3.2.3. So it should be no problem to fix it.
More important for me is whether the current location of general adaptors in Components
is done on purpose or by mistake.
Well, the "old" adaptors were located in components, so the "new" ones are located here, too. If I were a user, I would search for the adaptors in components, not in interfaces. The PartialAdaptors are loacted in Interfaces, just like many other Partials.
The adaptors are basically interfaces to a different sub-library. It is very important to differentiate between components of a sub-library and interfaces to other sub-libraries. I've already presented the importance and dangers of having deeply nested components that use classes from other domain sub-libraries (84th Design Meeting).
So the user needs to be educated that whenever you want to interface with something, it is under "Interfaces" you will find this.
There is probably far more stuff concerned within the MSL, since there is e.g. PlugToPin_p
located in Electrical.QuasiStationary.MultiPhase.Basic
but 'FlangeWithBearingAdaptor' in Mechanics.MultiBody.Interfaces
(I know I repeat myself).
So probably we have to collect all the stuff first and to classify it somehow in order to decide what is the proper location.
As partial adaptors
FlowToPotentialAdaptor
andPotentialToFlowAdaptor
are both placed inBlocks.Interfaces.Adaptors
, I would expect that all adaptors which extend them are placed in corresponding packages as well, i.e. inInterfaces
. But they are all placed inComponents
of particular domains instead.This probably originates from location of "old" adaptors in
Mechanics.Rotational.Components
but should be fixed.As another example,
FlangeWithBearingAdaptor
is properly placed inMechanics.MultiBody.Interfaces
.In contrast,
Mechanics.Rotational.Components.AngleToTorqueAdaptor
andMechanics.Rotational.Components.TorqueToAngleAdaptor
should of course be moved in the next major version at the earliest.