[GraphModel]PropertiesView is incorrectly generated
Rig does not build with the latest CINCO nightly (as of 2022-03-09).
I can conform that Rig did built with the nightly version published on 2022-02-17 (17.02).
Due to the nature of the error, I hazard a guess that it is related to !246 (merged)
The error appears in PipelinePropertyView
, in initEStructuralFeatureInformation
:
The method init_DisableCreate(EClass...) in the type CincoPropertyView is not applicable for the arguments (EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, EClass, String, EClass, EClass, EClass)
The fourth last element is String
. This a a node called Name
.
MRE
The following MRE does not 1:1 reproduce the error directly, but highlights another related issue first:
MGL:
id info.scce.cinco.product.somegraph.mglid
stylePath "model/SomeGraph.style"
graphModel SomeGraphGraphModel {
diagramExtension "somegraph"
containableElements(SomeNode)
}
container SomeNode {
style labeledCircle("${label}")
incomingEdges (*)
outgoingEdges (*)
attr EString as label
containableElements (Name)
}
@disable(create)
node Name {
style labeledCircle("Name: ${label}")
attr EString as name
incomingEdges (*)
outgoingEdges (*)
}
edge Transition {
style simpleArrow
}
Here the error is info.scce.cinco.product.somegraph.mglid.somegraph.SomegraphgraphmodelPackage cannot be resolved
. It occurs at the same place (the call to init_DisableCreate
):
de.jabc.cinco.meta.core.ui.properties.CincoPropertyView.init_DisableCreate(
// The use of non-internal EClasses is intentional.
info.scce.cinco.product.somegraph.mglid.somegraph.SomegraphgraphmodelPackage.eINSTANCE.getName()
);
Fixing this manually by using
de.jabc.cinco.meta.core.ui.properties.CincoPropertyView.init_DisableCreate(
// The use of non-internal EClasses is intentional.
info.scce.cinco.product.somegraph.mglid.somegraph.SomegraphPackage.eINSTANCE.getName()
);
brings back the error The method init_DisableCreate(EClass...) in the type CincoPropertyView is not applicable for the arguments (String)
.
It is possible to avoid this bug by renaming the node to NName
or similar. However, I would like to avoid this, as it breaks the already existing models (most notably the model used in the PG and the model to build Rigs documentation), and it requires fixing numerous hooks inside Rig.