package com.txtr.hibernatedelta.model; import static javax.xml.bind.annotation.XmlAccessType.FIELD; import java.util.List; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementWrapper; import javax.xml.bind.annotation.XmlTransient; import javax.xml.bind.annotation.XmlType; @XmlAccessorType(FIELD) @XmlType(propOrder = {"name", "unique", "columns"}) public class ExplicitHibernateIndex { @XmlAttribute private String name; @XmlTransient private HibernateIndexName indexName; @XmlAttribute private boolean unique; @XmlAttribute private boolean functional; @XmlElementWrapper(name = "columns") @XmlElement(name = "column") private List<String> columns; public ExplicitHibernateIndex() { } public ExplicitHibernateIndex(final String name, final boolean unique, boolean functional, final List<String> columns) { this.name = name; this.unique = unique; this.functional = functional; this.columns = columns; } public String getName() { if (name != null) { return name; } if (indexName != null) { return indexName.getName(); } return null; } public boolean isUnique() { return unique; } public List<String> getColumns() { return columns; } public HibernateIndexName getIndexName() { return indexName; } public void setIndexName(HibernateIndexName indexName) { this.indexName = indexName; } public boolean isFunctional() { return functional; } }