getColumn static method
Column?
getColumn(
- VariableMirror variableMirror,
- String columnName,
- bool ignoreRelationColumns
)
Implementation
static Column? getColumn(VariableMirror variableMirror, String columnName,
bool ignoreRelationColumns) {
if (variableMirror.metadata.isEmpty) {
return null;
}
dynamic variableElement = variableMirror.metadata[0];
if (variableElement is Column || variableElement is PrimaryColumn) {
Column column = variableElement;
return Column(
type: column.type != null
? column.type
: Column.getColumnType(variableMirror.reflectedType),
name: column.name != null ? column.name : columnName,
attributeName: columnName,
primary: column.primary,
nullable: column.nullable,
length: column.length,
select: column.select,
unique: column.unique);
} else if (variableElement is ManyToOne) {
ManyToOne manyToOneColumn = variableElement;
return Column(
type: ColumnType.TEXT,
name: manyToOneColumn.joinColumnName,
attributeName: columnName,
relation: ColumnRelation(
referencedColumn: 'id',
attributeName: columnName,
referencedTable: manyToOneColumn.parentTable,
relationType: RelationType.ManyToOne,
referencedEntity: Entity.getEntityDefinition(
AnnotationReflectable.reflectType(manyToOneColumn.table)
as ClassMirror),
referencedEntityColumns: ignoreRelationColumns
? null
: Entity.getEntityColumns(
AnnotationReflectable.reflectType(manyToOneColumn.table)
as ClassMirror,
ignoreRelationColumns)));
} else if (variableElement is OneToMany) {
OneToMany oneToManyColumn = variableElement;
return Column(
type: ColumnType.TEXT,
name: columnName,
attributeName: columnName,
relation: ColumnRelation(
referencedColumn: 'id',
attributeName: columnName,
relationType: RelationType.OneToMany,
referencedEntity: Entity.getEntityDefinition(
AnnotationReflectable.reflectType(oneToManyColumn.table)
as ClassMirror),
referencedEntityColumns: Entity.getEntityColumns(
AnnotationReflectable.reflectType(oneToManyColumn.table)
as ClassMirror,
true)));
} else if (variableElement is OneToOne) {}
return null;
}