String source

Returns Dart code to create this instance again in a script.

Source

String get source {
  var builder = new StringBuffer();
  if (relatedTableName != null) {
    builder.write('new SchemaColumn.relationship("${name}", ${type}');
    builder.write(", relatedTableName: \"${relatedTableName}\"");
    builder.write(", relatedColumnName: \"${relatedColumnName}\"");
    builder.write(", rule: ${deleteRule}");
  } else {
    builder.write('new SchemaColumn("${name}", ${type}');
    if (isPrimaryKey) {
      builder.write(", isPrimaryKey: true");
    } else {
      builder.write(", isPrimaryKey: false");
    }
    if (autoincrement) {
      builder.write(", autoincrement: true");
    } else {
      builder.write(", autoincrement: false");
    }
    if (defaultValue != null) {
      builder.write(', defaultValue: "${defaultValue}"');
    }
    if (isIndexed) {
      builder.write(", isIndexed: true");
    } else {
      builder.write(", isIndexed: false");
    }
  }

  if (isNullable) {
    builder.write(", isNullable: true");
  } else {
    builder.write(", isNullable: false");
  }
  if (isUnique) {
    builder.write(", isUnique: true");
  } else {
    builder.write(", isUnique: false");
  }

  builder.write(")");
  return builder.toString();
}