package com.txtr.hibernatedelta.model; import java.util.ArrayList; import java.util.List; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import org.apache.commons.lang3.StringUtils; import static javax.xml.bind.annotation.XmlAccessType.FIELD; @XmlRootElement(name = "indexNames") @XmlAccessorType(FIELD) public class HibernateIndexNames { @XmlElement(name = "indexName") private List<HibernateIndexName> indexNames = new ArrayList<HibernateIndexName>(); public List<HibernateIndexName> getIndexNames() { return indexNames; } public HibernateIndexName find(String tableName, List<String> columns) { String names = StringUtils.join(columns, ','); for (HibernateIndexName indexName : indexNames) { if (indexName.getTableName().equalsIgnoreCase(tableName) && StringUtils.join(indexName.getColumns(), ',').equalsIgnoreCase(names)) { return indexName; } } return null; } public HibernateIndexName findByName(String name) { for (HibernateIndexName indexName : indexNames) { if (indexName.getName().equalsIgnoreCase(name)) { return indexName; } } return null; } }