generateExtension static method

String generateExtension(
  1. StringBuffer classBuffer,
  2. ClassElement aClass,
  3. bool hasFSSupport,
  4. bool hasRDBSupport,
)

Generates a Dart extension for the given class name.

Implementation

static String generateExtension(
    final StringBuffer classBuffer,
    final ClassElement aClass,
    final bool hasFSSupport,
    final bool hasRDBSupport
    ) {
  classBuffer.writeln("// - - - - - - - FirestormObject ${aClass.name} - - - - - - -");
  classBuffer.writeln();

  //Generate extension class
  classBuffer.writeln("extension ${aClass.name}Model on ${aClass.name} {");
  classBuffer.writeln();

  if (aClass.unnamedConstructor == null) {
    throw InvalidClassException(aClass.name);
  }

  final ConstructorElement constructorElement = aClass.unnamedConstructor!;
  final List<ParameterElement> constructorParams = constructorElement.parameters;

  _generateStaticFields(classBuffer, hasFSSupport, hasRDBSupport);
  _generateToMap(classBuffer, aClass);
  _generateFromMap(classBuffer, aClass, constructorParams);
  return classBuffer.toString();
}