Skip to content

Commit c9a31bc

Browse files
committed
Added a new relation loop expression token <IF TO_DISPLAY_FIELD>, and a new relation loop expansion token <RELATION_TOSTRUCTURE_DISPLAY_FIELD>.
1 parent 3b04d4f commit c9a31bc

File tree

5 files changed

+27
-0
lines changed

5 files changed

+27
-0
lines changed

CodeGenEngine/ExpressionEvaluators/ExpressionEvaluatorRelationLoop.dbl

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ namespace CodeGen.Engine
9292
relationLoopExpressionEvaluators.Add("TO_AUTO_TIMESTAMP", evaluateRelationToAutoTimestamp)
9393
relationLoopExpressionEvaluators.Add("TO_AUTO_TIMESTAMP_CREATED", evaluateRelationToAutoTimestampCreated)
9494
relationLoopExpressionEvaluators.Add("TO_AUTO_TIMESTAMP_UPDATED", evaluateRelationToAutoTimestampUpdated)
95+
relationLoopExpressionEvaluators.Add("TO_DISPLAY_FIELD",evaluateRelationToDisplayField)
9596
relationLoopExpressionEvaluators.Add("TO_CHANGES", evaluateRelationToChanges)
9697
relationLoopExpressionEvaluators.Add("TO_DESCENDING", evaluateRelationToDescending)
9798
relationLoopExpressionEvaluators.Add("TO_DUPLICATES", evaluateRelationToDups)
@@ -400,6 +401,16 @@ namespace CodeGen.Engine
400401
mreturn EvaluateRelationLoopExpression(tkn, template, loops, doEvaluate)
401402
endmethod
402403

404+
private static method evaluateRelationToDisplayField, boolean
405+
tkn, @Token
406+
template, @FileNode
407+
loops, @IEnumerable<LoopNode>
408+
endparams
409+
proc
410+
lambda doEvaluate(context, fromStructure, relation, index, fromkey, tostr, tokey) !String.IsNullOrWhiteSpace(tostr.DisplayField)
411+
mreturn EvaluateRelationLoopExpression(tkn, template, loops, doEvaluate)
412+
endmethod
413+
403414
private static method evaluateRelationToChanges, boolean
404415
tkn, @Token
405416
template, @FileNode

CodeGenEngine/TokenExpanders/TokenExpanderRelationLoop.dbl

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ namespace CodeGen.Engine
6666
relationLoopTokenExpanders.Add("RELATION_NUMBER", expandRelationNumber)
6767
relationLoopTokenExpanders.Add("RELATION_TOKEY", expandRelationToKey)
6868
relationLoopTokenExpanders.Add("RELATION_TOSTRUCTURE", expandRelationToStructure)
69+
relationLoopTokenExpanders.Add("RELATION_TOSTRUCTURE_DISPLAY_FIELD",expandRelationToStructureDisplayField)
6970
relationLoopTokenExpanders.Add("RELATION_TOSTRUCTURE_PLURAL", expandRelationToStructurePlural)
7071
relationLoopTokenExpanders.Add("RELATION_TOSTRUCTURE_NOPLURAL", expandRelationToStructureNoPlural)
7172

@@ -164,6 +165,19 @@ namespace CodeGen.Engine
164165
mreturn ExpandRelationLoopToken(tkn, template, loops, doExpand)
165166
endmethod
166167

168+
private static method expandRelationToStructureDisplayField, string
169+
tkn, @Token
170+
template, @FileNode
171+
loops, @IEnumerable<LoopNode>
172+
endparams
173+
proc
174+
lambda doExpand(str, relation, index, fromkey, tostr, tokey)
175+
begin
176+
mreturn tostr.DisplayField
177+
end
178+
mreturn ExpandRelationLoopToken(tkn, template, loops, doExpand)
179+
endmethod
180+
167181
private static method expandRelationToStructurePlural, string
168182
tkn, @Token
169183
template, @FileNode

CodeGenEngine/Tokenizer.dbl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,7 @@ namespace CodeGen.Engine
439439
& { makeTokenMeta_AllVariants("RELATION_FROMKEY", TokenType.RelationLoop, TokenValidity.RelationLoop, true) },
440440
& { makeTokenMeta_AllVariants("RELATION_TOKEY", TokenType.RelationLoop, TokenValidity.RelationLoop, true) },
441441
& { makeTokenMeta_AllVariants("RELATION_TOSTRUCTURE", TokenType.RelationLoop, TokenValidity.RelationLoop, true) },
442+
& { makeTokenMeta_AllVariants("RELATION_TOSTRUCTURE_DISPLAY_FIELD", TokenType.RelationLoop, TokenValidity.RelationLoop, true) },
442443
& { makeTokenMeta_AllVariants("RELATION_TOSTRUCTURE_PLURAL", TokenType.RelationLoop, TokenValidity.RelationLoop, true) },
443444
& { makeTokenMeta_AllVariants("RELATION_TOSTRUCTURE_NOPLURAL", TokenType.RelationLoop, TokenValidity.RelationLoop, true) },
444445
& { new TokenMeta() {Name = "FROM_KEY_CHANGES", TypeOfToken = TokenType.RelationLoop, IsPaired = false, Validity = TokenValidity.RelationLoop, RequiresRepository = true} },
@@ -1038,6 +1039,7 @@ namespace CodeGen.Engine
10381039
expressions.Add("TO_AUTO_TIMESTAMP", TokenValidity.RelationLoop)
10391040
expressions.Add("TO_AUTO_TIMESTAMP_CREATED", TokenValidity.RelationLoop)
10401041
expressions.Add("TO_AUTO_TIMESTAMP_UPDATED", TokenValidity.RelationLoop)
1042+
expressions.Add("TO_DISPLAY_FIELD", TokenValidity.RelationLoop)
10411043
expressions.Add("TO_CHANGES", TokenValidity.RelationLoop)
10421044
expressions.Add("TO_DESCENDING", TokenValidity.RelationLoop)
10431045
expressions.Add("TO_DUPLICATES", TokenValidity.RelationLoop)

Documentation/CodeGen.chm

1.79 KB
Binary file not shown.

Documentation/CodeGen.hsm

9.29 KB
Binary file not shown.

0 commit comments

Comments
 (0)