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; } }