addAllReferences static method

List<String> addAllReferences(
  1. Type type, {
  2. List<String> exceptFields = const [],
})

Добавить в вписок все ссылочные типа объекта типа type Если среди полей будет табличная часть, ее ссылочные поля также будут добавлены в список через имяТаблицы.имяПоля

Implementation

static List<String> addAllReferences(Type type, {List<String> exceptFields = const []}) {
  List<String> loadReference = [];
  var allFields = NsgDataClient.client.getFieldList(type);
  for (var field in allFields.fields.values) {
    if (exceptFields.contains(field.name)) {
      continue;
    }
    if ((field is NsgDataReferenceField || field is NsgDataReferenceListField) && field.name != NsgDataItem.nameOwnerId) {
      loadReference.add(field.name);
    }
    if (field is NsgDataReferenceListField) {
      var tableRefereces = addAllReferences(field.referentElementType);
      for (var item in tableRefereces) {
        loadReference.add(field.name + '.' + item);
      }
    }
  }
  return loadReference;
}