< Summary

Information
Class: Ice.CompositeSliceLoader
Assembly: Ice
File(s): /home/runner/work/ice/ice/csharp/src/Ice/CompositeSliceLoader.cs
Tag: 71_18251537082
Line coverage
100%
Covered lines: 7
Uncovered lines: 0
Coverable lines: 7
Total lines: 32
Line coverage: 100%
Branch coverage
100%
Covered branches: 4
Total branches: 4
Branch coverage: 100%
Method coverage
100%
Covered methods: 3
Total methods: 3
Method coverage: 100%

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
add(...)100%11100%
newInstance(...)100%44100%

File(s)

/home/runner/work/ice/ice/csharp/src/Ice/CompositeSliceLoader.cs

#LineLine coverage
 1// Copyright (c) ZeroC, Inc.
 2
 3#nullable enable
 4
 5namespace Ice;
 6
 7/// <summary>Implements <see cref="SliceLoader" /> by combining multiple Slice loaders.</summary>
 8public sealed class CompositeSliceLoader : SliceLoader
 9{
 10    private readonly List<SliceLoader> _loaders;
 11
 12    /// <summary>Initializes a new instance of the <see cref="CompositeSliceLoader" /> class.</summary>
 13    /// <param name="loaders">The initial Slice loaders to combine.</param>
 114    public CompositeSliceLoader(params SliceLoader[] loaders) => _loaders = new List<SliceLoader>(loaders);
 15
 16    /// <summary>Adds a <see cref="SliceLoader" /> to this <see cref="CompositeSliceLoader" />.</summary>
 17    /// <param name="loader">The Slice loader to add.</param>
 118    public void add(SliceLoader loader) => _loaders.Add(loader);
 19
 20    /// <inheritdoc />
 21    public object? newInstance(string typeId)
 22    {
 123        foreach (SliceLoader loader in _loaders)
 24        {
 125            if (loader.newInstance(typeId) is object instance)
 26            {
 127                return instance;
 28            }
 29        }
 130        return null;
 131    }
 32}