Пример #1
0
 public Dependency CreateDependency([NotNull] Item usingItem, [NotNull] Item usedItem, [CanBeNull] ISourceLocation source,
                                    [CanBeNull] IMarkerSet markers, int ct, int questionableCt = 0, int badCt = 0, string notOkReason = null,
                                    [CanBeNull] string exampleInfo = null)
 {
     return(new Dependency(usingItem, usedItem, source, markers: markers,
                           ct: ct, questionableCt: questionableCt, badCt: badCt, notOkReason: notOkReason, exampleInfo: exampleInfo));
 }
Пример #2
0
 public Dependency CreateDependency([NotNull] Item usingItem, [NotNull] Item usedItem,
                                    [CanBeNull] ISourceLocation source, [CanBeNull] IMarkerSet markers, int ct, int questionableCt = 0,
                                    int badCt = 0, [CanBeNull] string notOkReason = null, [CanBeNull] string exampleInfo = null)
 {
     return((_itemAndDependencyFactories ?? _globalItemAndDependencyFactories).CreateDependency(usingItem, usedItem, source,
                                                                                                markers, ct, questionableCt, badCt, notOkReason, exampleInfo));
 }
Пример #3
0
 public void MergeWithMarkers([CanBeNull] IMarkerSet markerSet)
 {
     if (markerSet != null)
     {
         MergeWithMarkers(((AbstractMarkerSet)markerSet).Markers);
     }
 }
Пример #4
0
        /// <summary>
        /// Create a dependency.
        /// </summary>
        /// <param name="usingItem">The using item.</param>
        /// <param name="usedItem">The used item.</param>
        /// <param name="source">Name of the file.</param>
        /// <param name="markers"></param>
        /// <param name="ct"></param>
        /// <param name="questionableCt"></param>
        /// <param name="badCt"></param>
        /// <param name="notOkReason"></param>
        /// <param name="exampleInfo"></param>
        /// <param name="ignoreCaseDefault"></param>
        internal Dependency([NotNull] Item usingItem, [NotNull] Item usedItem,
                            [CanBeNull] ISourceLocation source, [CanBeNull] IMarkerSet markers,
                            int ct, int questionableCt     = 0, int badCt = 0, string notOkReason = null,
                            [CanBeNull] string exampleInfo = null, bool?ignoreCaseDefault = null) : base(usingItem, usedItem, source)
        {
            if (usingItem == null)
            {
                throw new ArgumentNullException(nameof(usingItem));
            }
            if (usedItem == null)
            {
                throw new ArgumentNullException(nameof(usedItem));
            }
            _ct             = ct;
            _questionableCt = questionableCt;
            _badCt          = badCt;
            _exampleInfo    = exampleInfo;
            bool ignoreCase = ignoreCaseDefault ?? usingItem.Type.IgnoreCase | usedItem.Type.IgnoreCase;

            _markerSet = new MutableMarkerSet(ignoreCase, markers);

            // Make sure that "no reason" is null so that ?? works.
            _notOkReason = string.IsNullOrWhiteSpace(notOkReason) ? null : notOkReason;
            CheckNotOkReason();
        }
Пример #5
0
 public ReadOnlyDependency(ReadOnlyItem usingItem, ReadOnlyItem usedItem, ISourceLocation source, IMarkerSet markerSet,
                           int ct, int questionableCt, int badCt, string notOkReason, string exampleInfo)
     : base(usingItem, usedItem, source)
 {
     MarkerSet      = markerSet;
     Ct             = ct;
     QuestionableCt = questionableCt;
     BadCt          = badCt;
     NotOkReason    = notOkReason;
     ExampleInfo    = exampleInfo;
 }
Пример #6
0
 private static void MarkItem(bool clear, Item item, IMarkerSet markersToAdd,
                              List <string> markerPatternsToRemove, bool ignoreCase)
 {
     if (clear)
     {
         item.ClearMarkers();
     }
     else
     {
         item.MergeWithMarkers(markersToAdd);
         item.RemoveMarkers(markerPatternsToRemove, ignoreCase);
     }
 }
Пример #7
0
 public void MergeWithMarkers(IMarkerSet markers)
 {
     _markerSet.MergeWithMarkers(markers);
     MarkersHaveChanged();
 }
 public Dependency CreateDependency(Item usingItem, Item usedItem, ISourceLocation source, IMarkerSet markers, int ct, int questionableCt = 0,
                                    int badCt = 0, string notOkReason = null, string exampleInfo = null)
 {
     foreach (var f in _factories)
     {
         Dependency result = f.CreateDependency(usingItem, usedItem, source, markers, ct, questionableCt, badCt, notOkReason, exampleInfo);
         if (result != null)
         {
             return(result);
         }
     }
     throw new InvalidOperationException("Internal error - this cannot happen, as the last factory has to create an item");
 }
Пример #9
0
 public MutableMarkerSet(bool ignoreCase, [CanBeNull] IMarkerSet markersOrNull) : base(ignoreCase)
 {
     _markersOrNull = CreateMarkerSetWithClonedDictionary(ignoreCase,
                                                          markersOrNull == null ? Empty(ignoreCase) : ((AbstractMarkerSet)markersOrNull).Markers);
 }
Пример #10
0
 public bool IsMatch(IMarkerSet obj)
 {
     return(obj.IsMatch(_evals));
 }
Пример #11
0
 public Dependency CreateDependency(Item usingItem, Item usedItem, ISourceLocation source, IMarkerSet markers, int ct, int questionableCt = 0,
                                    int badCt = 0, string notOkReason = null, string exampleInfo = null)
 {
     return(null); // We use standard dependencies between items
 }