96 lines
3.0 KiB
Dart

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',
);
}
}
}