getFieldType method

  1. @override
TypeInfo? getFieldType(
  1. O? o,
  2. String key, {
  3. bool resolveFiledName = false,
})
override

Implementation

@override
TypeInfo? getFieldType(O? o, String key, {bool resolveFiledName = false}) {
  TypeInfo? fieldType;

  final fieldsTypes = _fieldsTypes;
  if (fieldsTypes != null) {
    fieldType = fieldsTypes[key];

    if (fieldType == null && resolveFiledName) {
      var resolvedFieldName = this.resolveFiledName(fieldsNames(), key);
      if (resolvedFieldName != null) {
        fieldType = fieldsTypes[resolvedFieldName];
      }
    }
  }

  if (fieldType == null) {
    var field = reflection.field(key, o);

    if (field == null && resolveFiledName) {
      var resolvedFieldName = this.resolveFiledName(fieldsNames(), key);
      if (resolvedFieldName != null) {
        field = reflection.field(resolvedFieldName, o);
      }
    }

    if (field != null) {
      fieldType = TypeInfo.from(field);
    }
  }

  return fieldType;
}