@@ -76,9 +76,11 @@ abstract class AbstractNodeType(val name: String, val comment: Option[String], v
76
76
cardinalityOut : EdgeType .Cardinality = EdgeType .Cardinality .List ,
77
77
cardinalityIn : EdgeType .Cardinality = EdgeType .Cardinality .List ,
78
78
stepNameOut : String = " " ,
79
- stepNameIn : String = " " ): this .type = {
80
- _outEdges.add(AdjacentNode (edge, inNode, cardinalityOut, stepNameOut))
81
- inNode._inEdges.add(AdjacentNode (edge, this , cardinalityIn, stepNameIn))
79
+ stepNameOutDoc : String = " " ,
80
+ stepNameIn : String = " " ,
81
+ stepNameInDoc : String = " " ): this .type = {
82
+ _outEdges.add(AdjacentNode (edge, inNode, cardinalityOut, stringToOption(stepNameOut), stringToOption(stepNameOutDoc)))
83
+ inNode._inEdges.add(AdjacentNode (edge, this , cardinalityIn, stringToOption(stepNameIn), stringToOption(stepNameInDoc)))
82
84
this
83
85
}
84
86
@@ -87,9 +89,11 @@ abstract class AbstractNodeType(val name: String, val comment: Option[String], v
87
89
cardinalityIn : EdgeType .Cardinality = EdgeType .Cardinality .List ,
88
90
cardinalityOut : EdgeType .Cardinality = EdgeType .Cardinality .List ,
89
91
stepNameIn : String = " " ,
90
- stepNameOut : String = " " ): this .type = {
91
- _inEdges.add(AdjacentNode (edge, outNode, cardinalityIn, stepNameIn))
92
- outNode._outEdges.add(AdjacentNode (edge, this , cardinalityOut, stepNameOut))
92
+ stepNameInDoc : String = " " ,
93
+ stepNameOut : String = " " ,
94
+ stepNameOutDoc : String = " " ): this .type = {
95
+ _inEdges.add(AdjacentNode (edge, outNode, cardinalityIn, stringToOption(stepNameIn), stringToOption(stepNameInDoc)))
96
+ outNode._outEdges.add(AdjacentNode (edge, this , cardinalityOut, stringToOption(stepNameOut), stringToOption(stepNameOutDoc)))
93
97
this
94
98
}
95
99
@@ -141,7 +145,9 @@ class NodeBaseType(name: String, comment: Option[String], schemaInfo: SchemaInfo
141
145
override def toString = s " NodeBaseType( $name) "
142
146
}
143
147
144
- case class AdjacentNode (viaEdge : EdgeType , neighbor : AbstractNodeType , cardinality : EdgeType .Cardinality , customStepName : String )
148
+ case class AdjacentNode (viaEdge : EdgeType , neighbor : AbstractNodeType , cardinality : EdgeType .Cardinality ,
149
+ customStepName : Option [String ] = None ,
150
+ customStepDoc : Option [String ] = None )
145
151
146
152
case class ContainedNode (nodeType : AbstractNodeType , localName : String , cardinality : Property .Cardinality )
147
153
@@ -253,13 +259,14 @@ case class NeighborInfoForNode(
253
259
direction : Direction .Value ,
254
260
cardinality : EdgeType .Cardinality ,
255
261
isInherited : Boolean ,
256
- customStepName : Option [String ] = None ) {
262
+ customStepName : Option [String ] = None ,
263
+ customStepDoc : Option [String ] = None ) {
257
264
258
265
/** handling some accidental complexity within the schema: if a relationship is defined on a base node and
259
266
* separately on a concrete node, with different cardinalities, we need to use the highest cardinality */
260
267
lazy val consolidatedCardinality : EdgeType .Cardinality = {
261
268
val inheritedCardinalities = neighborNode.extendzRecursively.flatMap(_.inEdges).collect {
262
- case AdjacentNode (viaEdge, neighbor, cardinality, _)
269
+ case AdjacentNode (viaEdge, neighbor, cardinality, _, _ )
263
270
if viaEdge == edge && neighbor == neighborNode => cardinality
264
271
}
265
272
val allCardinalities = cardinality +: inheritedCardinalities
0 commit comments