diff --git a/Documentation/CodeGen.chm b/Documentation/CodeGen.chm index c56ad1f3..c95ee65e 100644 Binary files a/Documentation/CodeGen.chm and b/Documentation/CodeGen.chm differ diff --git a/Documentation/CodeGen.hsmx b/Documentation/CodeGen.hsmx index 352dba54..c098db23 100644 Binary files a/Documentation/CodeGen.hsmx and b/Documentation/CodeGen.hsmx differ diff --git a/HarmonyCoreExtensions/CustomFieldParam.dbl b/HarmonyCoreExtensions/CustomFieldParam.dbl new file mode 100644 index 00000000..bbeaa63b --- /dev/null +++ b/HarmonyCoreExtensions/CustomFieldParam.dbl @@ -0,0 +1,96 @@ +;;***************************************************************************** +;; +;; Title: CustomFieldParam.dbl +;; +;; Type: Class +;; +;; Description: A custom field loop expansion token for use with Harmony Core +;; +;; Date: 26th April 2023 +;; +;; Author: Steve Ives, Synergex Professional Services Group +;; http://www.synergex.com +;; +;;***************************************************************************** +;; +;; Copyright (c) 2023, Synergex International, Inc. +;; All rights reserved. +;; +;; Redistribution and use in source and binary forms, with or without +;; modification, are permitted provided that the following conditions are met: +;; +;; * Redistributions of source code must retain the above copyright notice, +;; this list of conditions and the following disclaimer. +;; +;; * Redistributions in binary form must reproduce the above copyright notice, +;; this list of conditions and the following disclaimer in the documentation +;; and/or other materials provided with the distribution. +;; +;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +;; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +;; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +;; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +;; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +;; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +;; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +;; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +;; POSSIBILITY OF SUCH DAMAGE. +;; +;;***************************************************************************** + +import System +import System.Collections.Generic +import CodeGen.Engine +import CodeGen.RepositoryAPI + +namespace HarmonyCoreExtensions + + public class CustomFieldParam implements IExpansionToken + + public property TokenName, String + method get + proc + mreturn "HARMONYCORE_CUSTOM_FIELD_PARAM" + endmethod + endproperty + + public property Description, String + method get + proc + mreturn "An example of a custom field loop token." + endmethod + endproperty + + public property Validity, TokenValidity + method get + proc + mreturn TokenValidity.FieldLoop + endmethod + endproperty + + public property TokenCase, TokenCaseMode + method get + proc + mreturn TokenCaseMode.UppercaseOnly + endmethod + endproperty + + public method Expand, String + tkn, @Token + template, @FileNode + loops, @IEnumerable + endparams + proc + lambda doExpand(str, field) + begin + data propValue = field.GetProperty(template, "HARMONYCORE_CUSTOM_FIELD_PARAM") + mreturn propValue == ^null ? "" : propValue + end + mreturn TokenExpander.ExpandFieldLoopToken(tkn, template, loops, doExpand) + endmethod + + endclass + +endnamespace diff --git a/HarmonyCoreExtensions/CustomFieldType.dbl b/HarmonyCoreExtensions/CustomFieldType.dbl index 537e6536..42b05598 100644 --- a/HarmonyCoreExtensions/CustomFieldType.dbl +++ b/HarmonyCoreExtensions/CustomFieldType.dbl @@ -86,10 +86,7 @@ namespace HarmonyCoreExtensions lambda doExpand(str, field) begin data propValue = field.GetProperty(template, "HARMONYCORE_CUSTOM_FIELD_TYPE") - if(propValue != ^null) then - mreturn propValue - else - mreturn "" + mreturn propValue == ^null ? "" : propValue end mreturn TokenExpander.ExpandFieldLoopToken(tkn, template, loops, doExpand) endmethod diff --git a/HarmonyCoreExtensions/CustomFieldValidator.dbl b/HarmonyCoreExtensions/CustomFieldValidator.dbl index 2d286d07..33dbdd1e 100644 --- a/HarmonyCoreExtensions/CustomFieldValidator.dbl +++ b/HarmonyCoreExtensions/CustomFieldValidator.dbl @@ -128,10 +128,7 @@ namespace HarmonyCoreExtensions lambda doExpand(str, field) begin data propValue = field.GetProperty(template, "HARMONYCORE_CUSTOM_FIELD_VALIDATOR") - if(propValue != ^null) then - mreturn propValue - else - mreturn "" + mreturn propValue == ^null ? "" : propValue end mreturn TokenExpander.ExpandFieldLoopToken(tkn, template, loops, doExpand) endmethod diff --git a/HarmonyCoreExtensions/HarmonyCoreExtensions.synproj b/HarmonyCoreExtensions/HarmonyCoreExtensions.synproj index fee74a1a..a4796b58 100644 --- a/HarmonyCoreExtensions/HarmonyCoreExtensions.synproj +++ b/HarmonyCoreExtensions/HarmonyCoreExtensions.synproj @@ -72,6 +72,7 @@ + @@ -82,6 +83,7 @@ + diff --git a/HarmonyCoreExtensions/HasCustomFieldParam.dbl b/HarmonyCoreExtensions/HasCustomFieldParam.dbl new file mode 100644 index 00000000..c151c61e --- /dev/null +++ b/HarmonyCoreExtensions/HasCustomFieldParam.dbl @@ -0,0 +1,88 @@ +;;***************************************************************************** +;; +;; Title: HasCustomFieldParam.dbl +;; +;; Type: Class +;; +;; Description: A custom field loop expression token for use with Harmony Core +;; +;; Date: 26th April 2023 +;; +;; Author: Steve Ives, Synergex Professional Services Group +;; http://www.synergex.com +;; +;;***************************************************************************** +;; +;; Copyright (c) 2023, Synergex International, Inc. +;; All rights reserved. +;; +;; Redistribution and use in source and binary forms, with or without +;; modification, are permitted provided that the following conditions are met: +;; +;; * Redistributions of source code must retain the above copyright notice, +;; this list of conditions and the following disclaimer. +;; +;; * Redistributions in binary form must reproduce the above copyright notice, +;; this list of conditions and the following disclaimer in the documentation +;; and/or other materials provided with the distribution. +;; +;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +;; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +;; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +;; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +;; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +;; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +;; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +;; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +;; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +;; POSSIBILITY OF SUCH DAMAGE. +;; +;;***************************************************************************** + +import System +import System.Collections.Generic +import CodeGen.Engine +import CodeGen.RepositoryAPI + +namespace HarmonyCoreExtensions + + public class HasCustomFieldParam implements IExpressionToken + + public property TokenName, String + method get + proc + mreturn "HARMONYCORE_CUSTOM_FIELD_PARAM" + endmethod + endproperty + + public property Description, String + method get + proc + mreturn "Does the field have a custom field parameter?" + endmethod + endproperty + + public property Validity, TokenValidity + method get + proc + mreturn TokenValidity.FieldLoop + endmethod + endproperty + + public method Evaluate, Boolean + tkn, @Token + template, @FileNode + loops, @IEnumerable + endparams + proc + lambda doEvaluate(str, field, index) + begin + mreturn field.HasProperty(template, "HARMONYCORE_CUSTOM_FIELD_PARAM") + end + mreturn ExpressionEvaluator.EvaluateFieldLoopExpression(tkn, template, loops, doEvaluate) + endmethod + + endclass + +endnamespace