mirror of
https://github.com/codewriter-packages/Tri-Inspector.git
synced 2025-01-22 08:18:49 -05:00
46 lines
1.2 KiB
C#
46 lines
1.2 KiB
C#
using System;
|
|
using JetBrains.Annotations;
|
|
using UnityEditor;
|
|
|
|
namespace TriInspector
|
|
{
|
|
public abstract class TriValidator
|
|
{
|
|
internal bool ApplyOnArrayElement { get; set; }
|
|
|
|
[PublicAPI]
|
|
public virtual void Initialize(TriPropertyDefinition propertyDefinition)
|
|
{
|
|
}
|
|
|
|
[PublicAPI]
|
|
public abstract TriValidationResult Validate(TriProperty property);
|
|
}
|
|
|
|
public abstract class TriAttributeValidator : TriValidator
|
|
{
|
|
internal Attribute RawAttribute { get; set; }
|
|
}
|
|
|
|
public abstract class TriAttributeValidator<TAttribute> : TriAttributeValidator
|
|
where TAttribute : Attribute
|
|
{
|
|
[PublicAPI]
|
|
public TAttribute Attribute => (TAttribute) RawAttribute;
|
|
}
|
|
|
|
public abstract class TriValueValidator : TriValidator
|
|
{
|
|
}
|
|
|
|
public abstract class TriValueValidator<T> : TriValueValidator
|
|
{
|
|
public sealed override TriValidationResult Validate(TriProperty property)
|
|
{
|
|
return Validate(new TriValue<T>(property));
|
|
}
|
|
|
|
[PublicAPI]
|
|
public abstract TriValidationResult Validate(TriValue<T> propertyValue);
|
|
}
|
|
} |