Skip to content

Commit 703bdfa

Browse files
committed
We added two new field loop expression tokens <IF GROUP_EXPLICIT> and <IF GROUP_IMPLICIT>. Also, for unexpanded explicit group fields only, we altered the output of three six loop expansion tokens, <FIELD_CSDEFAULT>, <FIELD_CSTYPE>, <FIELD_SNDEFAULT>, <FIELD_SNTYPE>, <FIELD_VBDEFAULT> and <FIELD_VBTYPE> by prefixing the type with the name of the enclosing structure.
1 parent 9e241e4 commit 703bdfa

144 files changed

Lines changed: 41196 additions & 41112 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CodeGenEngine/ExpressionEvaluators/ExpressionEvaluatorFieldLoop.dbl

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,8 @@ namespace CodeGen.Engine
132132
fieldLoopExpressionEvaluators.Add("FIRST_UNIQUE_KEY_SEGMENT", evaluateFirstUniqueKeySegment)
133133
fieldLoopExpressionEvaluators.Add("FORMAT", evaluateFieldFormat)
134134
fieldLoopExpressionEvaluators.Add("GROUP", evaluateFieldGroup)
135+
fieldLoopExpressionEvaluators.Add("GROUP_EXPLICIT", evaluateFieldGroupExplicit)
136+
fieldLoopExpressionEvaluators.Add("GROUP_IMPLICIT", evaluateFieldGroupImplicit)
135137
fieldLoopExpressionEvaluators.Add("GROUP_OVERLAY", evaluateFieldGroupOverlay)
136138
fieldLoopExpressionEvaluators.Add("GROUP_MEMBER_PREFIX", evaluateFieldGroupMemberPrefix)
137139
fieldLoopExpressionEvaluators.Add("GROUP_MEMBER_PREFIX_COMPILER", evaluateFieldGroupMemberPrefixCompiler)
@@ -1295,6 +1297,30 @@ namespace CodeGen.Engine
12951297
mreturn EvaluateFieldLoopExpression(tkn, template, loops, doEvaluate)
12961298
endmethod
12971299

1300+
private static method evaluateFieldGroupExplicit, boolean
1301+
tkn, @Token
1302+
template, @FileNode
1303+
loops, @IEnumerable<LoopNode>
1304+
endparams
1305+
proc
1306+
lambda doEvaluate(str, field, index)
1307+
& field.GroupType != RpsFieldGroup.No
1308+
& && String.IsNullOrWhiteSpace(field.GroupStructure)
1309+
mreturn EvaluateFieldLoopExpression(tkn, template, loops, doEvaluate)
1310+
endmethod
1311+
1312+
private static method evaluateFieldGroupImplicit, boolean
1313+
tkn, @Token
1314+
template, @FileNode
1315+
loops, @IEnumerable<LoopNode>
1316+
endparams
1317+
proc
1318+
lambda doEvaluate(str, field, index)
1319+
& field.GroupType != RpsFieldGroup.No
1320+
& && !String.IsNullOrWhiteSpace(field.GroupStructure)
1321+
mreturn EvaluateFieldLoopExpression(tkn, template, loops, doEvaluate)
1322+
endmethod
1323+
12981324
private static method evaluateFieldGroupOverlay, boolean
12991325
tkn, @Token
13001326
template, @FileNode

CodeGenEngine/RepositoryTools.dbl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -544,15 +544,15 @@ namespace CodeGen.Engine
544544

545545
if (Field.GroupType==RpsFieldGroup.Yes && String.IsNullOrWhiteSpace(Field.GroupStructure) && context.CurrentTask.ExplicitGroupNoExpand)
546546
begin
547-
Field.CsType = Field.Name
548-
Field.CsDefault = String.Format("new {0}()",Field.Name)
547+
Field.CsType = String.Format("{0}_{1}",Struct.Name,Field.Name)
548+
Field.SnDefault = String.Format("new {0}_{1}()",Struct.Name,Field.Name)
549549
Field.CsNumericConvert = ""
550550

551-
Field.VbType = Field.Name
552-
Field.VbDefault = String.Format("New {0}()",Field.Name)
551+
Field.VbType = String.Format("{0}_{1}",Struct.Name,Field.Name)
552+
Field.VbDefault = String.Format("new {0}_{1}()",Struct.Name,Field.Name)
553553

554-
Field.SnType = String.Format("@{0}",Field.Name)
555-
Field.SnDefault = String.Format("new {0}()",Field.Name)
554+
Field.SnType = String.Format("@{0}_{1}",Struct.Name,Field.Name)
555+
Field.SnDefault = String.Format("new {0}_{1}()",Struct.Name,Field.Name)
556556

557557
Field.SqlType = String.Format("VARCHAR({0})",%string(Field.Size))
558558

CodeGenEngine/Tokenizer.dbl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -868,6 +868,8 @@ namespace CodeGen.Engine
868868
expressions.Add("FUNCTION", TokenValidity.MethodLoop)
869869
expressions.Add("GENERICBUTTON", TokenValidity.ButtonLoop)
870870
expressions.Add("GROUP", TokenValidity.FieldLoop)
871+
expressions.Add("GROUP_EXPLICIT", TokenValidity.FieldLoop)
872+
expressions.Add("GROUP_IMPLICIT", TokenValidity.FieldLoop)
871873
expressions.Add("GROUP_MEMBER_PREFIX", TokenValidity.FieldLoop)
872874
expressions.Add("GROUP_MEMBER_PREFIX_COMPILER", TokenValidity.FieldLoop)
873875
expressions.Add("GROUP_OVERLAY", TokenValidity.FieldLoop)

Documentation/CodeGen.chm

106 Bytes
Binary file not shown.

Documentation/CodeGen.hsmx

693 Bytes
Binary file not shown.

SampleTemplates/a.tpl

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,20 @@
11
;//This template is for development testing. It is not shipped by the installer.
2-
<CODEGEN_FILENAME>a.txt</CODEGEN_FILENAME>
2+
<CODEGEN_FILENAME>a.dbl</CODEGEN_FILENAME>
3+
namespace <NAMESPACE>
4+
5+
public class <StructureName>
6+
37
<FIELD_LOOP>
4-
<FIELD_NAME> <FIELD_SQLNAME>
5-
</FIELD_LOOP>
8+
public readwrite property <FieldSqlName>, <FIELD_SNTYPE>
9+
10+
<IF GROUP_EXPLICIT AND NOT GROUP_OVERLAY>
11+
public class <STRUCTURE_NAME>_<FIELD_NAME> ;Explicit group
12+
13+
<FIELD_GROUP_EXPAND>
14+
endclass
15+
16+
</IF>
17+
</FIELD_LOOP>
18+
endclass
19+
20+
endnamespace

0 commit comments

Comments
 (0)