com-pas / compas-scl-auto-alignment

Service to auto align SCL files without coordinates
Apache License 2.0
0 stars 3 forks source link

Throw a more representative Exception when Auto alignment failes #266

Open pascalwilbrink opened 9 months ago

pascalwilbrink commented 9 months ago

The SubstationGraphBuilder requires 2 (or 3) TransformerWindings to be present. All these TransformerWindings require a Terminal section (+ ConnectivityNode in that Terminal Section). When either the Terminal element, or the ConnectivityNode element is not present in the SCL file, a default exception message gets thrown (For Terminal: ArrayIndexOutOfBounds, for ConnectivityNode: NullPointer). We should add assertions before trying to create the FeederNode:

https://github.com/com-pas/compas-scl-auto-alignment/blob/develop/service/src/main/java/org/lfenergy/compas/scl/auto/alignment/builder/SubstationGraphBuilder.java#L90

JakobVogelsang commented 9 months ago

This above assumption does not hold with three winding transformers, at least not when the third winding is not connected to anything else than itself Compensating winding.

Unfortunately, it is hard to know which one of the three is one.

I therefore would propose a slightly other behavior: We expect to there be at least one connected transformer winding. Connected means there is a Terminal child element pointing to a valid ConnectivityNode.

It would be consistent with what we expect from the elements ConductingEquipment here one connection is enough as well.