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