import 'package:brick_generator/models/variable_string_syntax.dart'; import 'package:yaml/yaml.dart'; class VariableSyntax { String? camelCase; String? constantCase; String? dotCase; String? headerCase; String? lowerCase; String? pascalCase; String? paramCase; String? sentenceCase; String? snakeCase; String? titleCase; String? upperCase; VariableSyntax({ required this.camelCase, required this.constantCase, required this.dotCase, required this.headerCase, required this.lowerCase, required this.pascalCase, required this.paramCase, required this.sentenceCase, required this.snakeCase, required this.titleCase, required this.upperCase, }); VariableSyntax._(); factory VariableSyntax.parser() => VariableSyntax._(); static VariableSyntax? from(YamlMap? data) => data != null ? VariableSyntax( camelCase: data[VariableStringSyntax.camelCase.mapKey] as String?, constantCase: data[VariableStringSyntax.constantCase.mapKey] as String?, dotCase: data[VariableStringSyntax.dotCase.mapKey] as String?, headerCase: data[VariableStringSyntax.headerCase.mapKey] as String?, lowerCase: data[VariableStringSyntax.lowerCase.mapKey] as String?, pascalCase: data[VariableStringSyntax.pascalCase.mapKey] as String?, paramCase: data[VariableStringSyntax.paramCase.mapKey] as String?, sentenceCase: data[VariableStringSyntax.sentenceCase.mapKey] as String?, snakeCase: data[VariableStringSyntax.snakeCase.mapKey] as String?, titleCase: data[VariableStringSyntax.titleCase.mapKey] as String?, upperCase: data[VariableStringSyntax.upperCase.mapKey] as String?, ) : null; String? getValue(VariableStringSyntax key) { switch (key) { case VariableStringSyntax.camelCase: return camelCase; case VariableStringSyntax.constantCase: return constantCase; case VariableStringSyntax.dotCase: return dotCase; case VariableStringSyntax.headerCase: return headerCase; case VariableStringSyntax.lowerCase: return lowerCase; case VariableStringSyntax.pascalCase: return pascalCase; case VariableStringSyntax.paramCase: return paramCase; case VariableStringSyntax.sentenceCase: return sentenceCase; case VariableStringSyntax.snakeCase: return snakeCase; case VariableStringSyntax.titleCase: return titleCase; case VariableStringSyntax.upperCase: return upperCase; } } void checkFormat() { if (camelCase == null || constantCase == null || dotCase == null || headerCase == null || lowerCase == null || pascalCase == null || paramCase == null || sentenceCase == null || snakeCase == null || titleCase == null || upperCase == null) { throw ArgumentError( 'Yaml file is not conform', ); } } }