Skip to content

Commit

Permalink
[Add] IEnumerableHelper
Browse files Browse the repository at this point in the history
  • Loading branch information
samatstariongroup committed Nov 16, 2024
1 parent 77bab01 commit 83b5115
Show file tree
Hide file tree
Showing 3 changed files with 286 additions and 154 deletions.
53 changes: 53 additions & 0 deletions uml4net.HandleBars/IEnumerableHelper.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
// -------------------------------------------------------------------------------------------------
// <copyright file="IEnumerableHelper.cs" company="Starion Group S.A.">
//
// Copyright 2019-2024 Starion Group S.A.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, softwareUseCases
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// </copyright>
// ------------------------------------------------------------------------------------------------

namespace uml4net.HandleBars
{
using System.Collections.Generic;
using System.Linq;

using HandlebarsDotNet;

/// <summary>
/// A helper that supports operations on IEnumerable
/// </summary>
public static class IEnumerableHelper
{
/// <summary>
/// Registers the <see cref="IEnumerableHelper"/>
/// </summary>
/// <param name="handlebars">
/// The <see cref="IHandlebars"/> context with which the helper needs to be registered
/// </param>
public static void RegisterEnumerableHelper(this IHandlebars handlebars)
{
handlebars.RegisterHelper("IEnumerable.IsEmpty", (context, parameters) =>
{
if (parameters[0] is IEnumerable<object> list && !list.Any())
{
return true;
}

return false;

});
}
}
}
2 changes: 2 additions & 0 deletions uml4net.Reporting/Generators/HandleBarsReportGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ namespace uml4net.Reporting.Generators
using uml4net.Reporting.Payload;
using uml4net.Reporting.Resources;
using uml4net.xmi.Readers;
using uml4net.HandleBars;

/// <summary>
/// Abstract super class from which all <see cref="HandlebarsDotNet"/> generators
Expand Down Expand Up @@ -75,6 +76,7 @@ protected HandleBarsReportGenerator(ILoggerFactory loggerFactory = null) : base(
protected virtual void RegisterHelpers()
{
uml4net.HandleBars.StringHelper.RegisterStringHelper(this.Handlebars);
uml4net.HandleBars.IEnumerableHelper.RegisterEnumerableHelper(this.Handlebars);
uml4net.HandleBars.PropertyHelper.RegisterStructuralFeatureHelper(this.Handlebars);
uml4net.HandleBars.GeneralizationHelper.RegisterGeneralizationHelper(this.Handlebars);
uml4net.HandleBars.DocumentationHelper.RegisteredDocumentationHelper(this.Handlebars);
Expand Down
Loading

0 comments on commit 83b5115

Please sign in to comment.