CommonFieldModel<TypeModel> constructor

CommonFieldModel<TypeModel>(
  1. FieldElement field,
  2. MkType<TypeModel> mkType,
  3. FieldNameConfig fieldCfg
)

Implementation

factory CommonFieldModel(FieldElement field, MkType<TypeModel> mkType, FieldNameConfig fieldCfg) {
  try {
    final ty = mkType(field.type);
    String name, internalName;
    switch (fieldCfg) {
      case FieldNameConfig.Public:
        {
          if (field.name.startsWith('_')) {
            throw CodegenException('fieldname must not start with an underscore');
          }
          name = field.name;
          internalName = '_' + name;
          break;
        }
      case FieldNameConfig.Private:
        {
          if (!field.name.startsWith('_')) {
            throw CodegenException('fieldname must start with an underscore');
          }
          name = field.name.substring(1);
          internalName = field.name;
          break;
        }
    }
    return CommonFieldModel._(
      name: name,
      internalName: internalName,
      type: ty,
    );
  } on CodegenException catch (e) {
    e.fieldName = field.name;
    rethrow;
  }
}