visitColumnConstraint method
Implementation
@override
void visitColumnConstraint(ColumnConstraint e, void arg) {
if (e.name != null) {
keyword(TokenType.constraint);
identifier(e.name!);
}
e.when(
primaryKey: (primaryKey) {
keyword(TokenType.primary);
keyword(TokenType.key);
_orderingMode(primaryKey.mode);
_conflictClause(primaryKey.onConflict);
if (primaryKey.autoIncrement) keyword(TokenType.autoincrement);
},
notNull: (notNull) {
keyword(TokenType.not);
keyword(TokenType.$null);
_conflictClause(notNull.onConflict);
},
nullable: (nullable) {
keyword(TokenType.$null);
},
unique: (unique) {
keyword(TokenType.unique);
_conflictClause(unique.onConflict);
},
check: (check) {
keyword(TokenType.check);
symbol('(', spaceBefore: true);
visit(check.expression, arg);
symbol(')', spaceAfter: true);
},
isDefault: (def) {
keyword(TokenType.$default);
final expr = def.expression;
if (expr is Literal) {
visit(expr, arg);
} else {
symbol('(', spaceBefore: true);
visit(expr, arg);
symbol(')', spaceAfter: true);
}
},
collate: (collate) {
keyword(TokenType.collate);
identifier(collate.collation);
},
foreignKey: (foreignKey) {
visit(foreignKey.clause, arg);
},
generatedAs: (generatedAs) {
keyword(TokenType.generated);
keyword(TokenType.always);
keyword(TokenType.as);
symbol('(', spaceBefore: true);
visit(generatedAs.expression, arg);
symbol(')', spaceAfter: true);
if (generatedAs.stored) {
keyword(TokenType.stored);
} else {
keyword(TokenType.virtual);
}
},
mappedBy: (mappedBy) {
keyword(TokenType.mapped);
keyword(TokenType.by);
dartCode(mappedBy.mapper.dartCode);
},
);
}