package com.zillabyte.motherbrain.relational; import java.io.Serializable; import java.util.Arrays; import java.util.LinkedList; import java.util.List; import com.google.common.collect.Lists; public class RelationDef implements Serializable { /** * */ private static final long serialVersionUID = 5129083835231978140L; private String tableName; private List<ColumnDef> _valueColumns; private String concreteName; public RelationDef(String tableName) { this(tableName, tableName); } public RelationDef(String tableName, String concreteName) { this(tableName, concreteName, new LinkedList<ColumnDef>()); } public RelationDef(String tableName, String concreteName, List<ColumnDef> valueColumns) { this.tableName = tableName; this.concreteName = concreteName; this._valueColumns = valueColumns; } public RelationDef(String tableName, String concreteName, ColumnDef... valueColumns) { this(tableName, concreteName, Arrays.asList(valueColumns)); } public List<ColumnDef> valueColumns() { return _valueColumns; } public String name() { return tableName; } public String concreteName() { return this.concreteName; } public RelationBackend getCurrentBackend() { return RelationBackend.POSTGRES; } public List<ColumnDef> allColumns() { List<ColumnDef> l = Lists.newArrayList(); l.addAll(valueColumns()); return l; } public void addColumn(ColumnDef col) { this._valueColumns.add(col); } public void setConcreteName(String concreteTableName) { this.concreteName = concreteTableName; } }