Initial commit
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
|
||||
namespace NaughtyAttributes.Editor
|
||||
{
|
||||
public abstract class PropertyValidatorBase
|
||||
{
|
||||
public abstract void ValidateProperty(SerializedProperty property);
|
||||
}
|
||||
|
||||
public static class ValidatorAttributeExtensions
|
||||
{
|
||||
private static Dictionary<Type, PropertyValidatorBase> _validatorsByAttributeType;
|
||||
|
||||
static ValidatorAttributeExtensions()
|
||||
{
|
||||
_validatorsByAttributeType = new Dictionary<Type, PropertyValidatorBase>();
|
||||
_validatorsByAttributeType[typeof(MinValueAttribute)] = new MinValuePropertyValidator();
|
||||
_validatorsByAttributeType[typeof(MaxValueAttribute)] = new MaxValuePropertyValidator();
|
||||
_validatorsByAttributeType[typeof(RequiredAttribute)] = new RequiredPropertyValidator();
|
||||
_validatorsByAttributeType[typeof(ValidateInputAttribute)] = new ValidateInputPropertyValidator();
|
||||
}
|
||||
|
||||
public static PropertyValidatorBase GetValidator(this ValidatorAttribute attr)
|
||||
{
|
||||
PropertyValidatorBase validator;
|
||||
if (_validatorsByAttributeType.TryGetValue(attr.GetType(), out validator))
|
||||
{
|
||||
return validator;
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user