// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using System.Collections.Generic; namespace osu.Game.Rulesets.Edit.Checks.Components { public abstract class Check { /// /// Returns the for this check. /// Basically, its information. /// /// public abstract CheckMetadata Metadata(); /// /// The templates for issues that this check may use. /// Basically, what issues this check can detect. /// /// public abstract IEnumerable Templates(); protected Check() { foreach (var template in Templates()) template.Origin = this; } } public abstract class Check : Check { /// /// Returns zero, one, or several issues detected by /// this check on the given object. /// /// The object to run the check on. /// public abstract IEnumerable Run(T obj); } }