@@ -95,6 +95,17 @@ namespace CodeGen.Engine
9595 genericExpressionEvaluators.Add("STRUCTURE_USER>DEFINED", evaluateStructureUserDefined)
9696 genericExpressionEvaluators.Add("STRUCTURE_UTEXT", evaluateStructureUserText)
9797
98+ ;; Harmony Core structure expressions
99+
100+ genericExpressionEvaluators.Add("GET_ALL_ENDPOINT", evaluateGetAllEndpoint)
101+ genericExpressionEvaluators.Add("GET_ENDPOINT", evaluateGetEndpoint)
102+ genericExpressionEvaluators.Add("POST_ENDPOINT", evaluatePostEndpoint)
103+ genericExpressionEvaluators.Add("PUT_ENDPOINT", evaluatePutEndpoint)
104+ genericExpressionEvaluators.Add("PATCH_ENDPOINT", evaluatePatchEndpoint)
105+ genericExpressionEvaluators.Add("DELETE_ENDPOINT", evaluateDeleteEndpoint)
106+ genericExpressionEvaluators.Add("ALTERNATE_KEY_ENDPOINTS", evaluateAlternateKeyEndpoints)
107+ genericExpressionEvaluators.Add("PROPERTY_ENDPOINTS", evaluatePropertyEndpoints)
108+
98109 endmethod
99110
100111 ;; -------------------------------------------------------------------------------------------------------------------------------
@@ -398,7 +409,90 @@ namespace CodeGen.Engine
398409 mreturn evaluateStructureExpression(tkn, template, loops, doEvaluate)
399410 endmethod
400411
401- endclass
412+ ;; -------------------------------------------------------------------------------------------------------------------------------
413+ ;; Harmony Core Structure expressions
414+
415+ private static method evaluateGetAllEndpoint, boolean
416+ tkn, @Token
417+ template, @FileNode
418+ loops, @IEnumerable<LoopNode>
419+ endparams
420+ proc
421+ lambda doEvaluate(str) (str.UserText.Contains("NO_GET_ALL_ENDPOINT")==false && str.LongDescription.Contains("NO_GET_ALL_ENDPOINT")==false)
422+ mreturn evaluateStructureExpression(tkn, template, loops, doEvaluate)
423+ endmethod
424+
425+ private static method evaluateGetEndpoint, boolean
426+ tkn, @Token
427+ template, @FileNode
428+ loops, @IEnumerable<LoopNode>
429+ endparams
430+ proc
431+ lambda doEvaluate(str) (str.UserText.Contains("NO_GET_ENDPOINT")==false && str.LongDescription.Contains("NO_GET_ENDPOINT")==false)
432+ mreturn evaluateStructureExpression(tkn, template, loops, doEvaluate)
433+ endmethod
434+
435+ private static method evaluatePostEndpoint, boolean
436+ tkn, @Token
437+ template, @FileNode
438+ loops, @IEnumerable<LoopNode>
439+ endparams
440+ proc
441+ lambda doEvaluate(str) (str.UserText.Contains("NO_POST_ENDPOINT")==false && str.LongDescription.Contains("NO_POST_ENDPOINT")==false)
442+ mreturn evaluateStructureExpression(tkn, template, loops, doEvaluate)
443+ endmethod
444+
445+ private static method evaluatePutEndpoint, boolean
446+ tkn, @Token
447+ template, @FileNode
448+ loops, @IEnumerable<LoopNode>
449+ endparams
450+ proc
451+ lambda doEvaluate(str) (str.UserText.Contains("NO_PUT_ENDPOINT")==false && str.LongDescription.Contains("NO_PUT_ENDPOINT")==false)
452+ mreturn evaluateStructureExpression(tkn, template, loops, doEvaluate)
453+ endmethod
454+
455+ private static method evaluatePatchEndpoint, boolean
456+ tkn, @Token
457+ template, @FileNode
458+ loops, @IEnumerable<LoopNode>
459+ endparams
460+ proc
461+ lambda doEvaluate(str) (str.UserText.Contains("NO_PATCH_ENDPOINT")==false && str.LongDescription.Contains("NO_PATCH_ENDPOINT")==false)
462+ mreturn evaluateStructureExpression(tkn, template, loops, doEvaluate)
463+ endmethod
464+
465+ private static method evaluateDeleteEndpoint, boolean
466+ tkn, @Token
467+ template, @FileNode
468+ loops, @IEnumerable<LoopNode>
469+ endparams
470+ proc
471+ lambda doEvaluate(str) (str.UserText.Contains("NO_DELETE_ENDPOINT")==false && str.LongDescription.Contains("NO_DELETE_ENDPOINT")==false)
472+ mreturn evaluateStructureExpression(tkn, template, loops, doEvaluate)
473+ endmethod
474+
475+ private static method evaluateAlternateKeyEndpoints, boolean
476+ tkn, @Token
477+ template, @FileNode
478+ loops, @IEnumerable<LoopNode>
479+ endparams
480+ proc
481+ lambda doEvaluate(str) (str.UserText.Contains("NO_ALTERNATE_KEY_ENDPOINTS")==false && str.LongDescription.Contains("NO_ALTERNATE_KEY_ENDPOINTS")==false)
482+ mreturn evaluateStructureExpression(tkn, template, loops, doEvaluate)
483+ endmethod
484+
485+ private static method evaluatePropertyEndpoints, boolean
486+ tkn, @Token
487+ template, @FileNode
488+ loops, @IEnumerable<LoopNode>
489+ endparams
490+ proc
491+ lambda doEvaluate(str) (str.UserText.Contains("NO_PROPERTY_ENDPOINTS")==false && str.LongDescription.Contains("NO_PROPERTY_ENDPOINTS")==false)
492+ mreturn evaluateStructureExpression(tkn, template, loops, doEvaluate)
493+ endmethod
494+
495+ endclass
402496
403497endnamespace
404498
0 commit comments