package com.txtr.hibernatedelta.model;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
import static javax.xml.bind.annotation.XmlAccessType.FIELD;
@XmlType(propOrder = {"name", "targetTable", "nullable", "primaryKeyType", "sqlType", "length", "decimalDigits"})
@XmlAccessorType(FIELD)
public class HibernateColumn implements IHibernateDatabaseObject {
@XmlAttribute
private String name;
//for a foreign key
@XmlAttribute
private String targetTable;
@XmlTransient
private HibernateIndexName indexName;
@XmlAttribute
private boolean nullable;
@XmlAttribute(name = "primaryKey")
private HibernatePrimaryKeyType primaryKeyType;
@XmlAttribute
private String sqlType;
@XmlAttribute
private Integer length;
@XmlAttribute
private Integer decimalDigits;
public HibernateColumn() {
}
public HibernateColumn(String name, String targetTable, boolean nullable, HibernatePrimaryKeyType primaryKeyType, String sqlType, Integer length, Integer decimalDigits) {
this.name = name;
this.targetTable = targetTable;
this.nullable = nullable;
this.primaryKeyType = primaryKeyType;
this.sqlType = sqlType;
this.length = length;
this.decimalDigits = decimalDigits;
}
@Override
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTargetTable() {
return targetTable;
}
public boolean isNullable() {
return nullable;
}
public boolean isPrimaryKey() {
return primaryKeyType != null;
}
public HibernatePrimaryKeyType getPrimaryKeyType() {
return primaryKeyType;
}
public void setPrimaryKeyType(HibernatePrimaryKeyType primaryKeyType) {
this.primaryKeyType = primaryKeyType;
}
public Integer getLength() {
return length;
}
public Integer getDecimalDigits() {
return decimalDigits;
}
public String getSqlType() {
return sqlType;
}
public String getForeignKeyIndexName() {
if (indexName != null) {
return indexName.getName();
}
return null;
}
public void setIndexName(HibernateIndexName indexName) {
this.indexName = indexName;
}
}