void GenerateFor(TypeMetaData metaData, string property, IPropertyValidator validator)
{
var validatorType = validator.GetType();
var types = new List<Type>();
types.Add(validatorType);
types.AddRange(validatorType.GetInterfaces());
foreach (var type in types)
{
if (_generatorsByType.ContainsKey(type))
{
var propertyName = property.ToCamelCase();
var rule = _generatorsByType[type].GeneratorFrom(property, validator);
var ruleName = rule.GetType().Name.ToCamelCase();
metaData[propertyName][ruleName] = rule;
}
}
}