sascha@185: package de.intevation.flys.importer; sascha@185: sascha@187: import de.intevation.flys.model.Attribute; sascha@187: sascha@187: import org.hibernate.Session; sascha@187: import org.hibernate.Query; sascha@187: sascha@187: import java.util.List; sascha@187: sascha@185: public class ImportAttribute sascha@186: implements Comparable sascha@185: { sascha@185: protected String value; sascha@185: sascha@187: protected Attribute peer; sascha@187: sascha@185: public ImportAttribute() { sascha@185: } sascha@185: sascha@186: public ImportAttribute(String value) { sascha@186: this.value = value; sascha@186: } sascha@186: sascha@185: public String getValue() { sascha@185: return value; sascha@185: } sascha@185: sascha@185: public void setValue(String value) { sascha@185: this.value = value; sascha@185: } sascha@185: sascha@186: public int compareTo(ImportAttribute other) { sascha@186: return value.compareTo(other.value); sascha@186: } sascha@186: sascha@185: @Override sascha@185: public boolean equals(Object other) { sascha@185: if (other == this) return true; sascha@189: if (!(other instanceof ImportAttribute)) return false; sascha@189: return value.equals(((ImportAttribute)other).value); sascha@185: } sascha@185: sascha@185: @Override sascha@185: public int hashCode() { sascha@185: return value.hashCode(); sascha@185: } sascha@187: sascha@187: public Attribute getPeer() { sascha@188: if (peer == null) { sascha@497: Session session = ImporterSession.getInstance().getDatabaseSession(); sascha@187: Query query = session.createQuery("from Attribute where value=:value"); sascha@187: query.setString("value", value); sascha@187: List attributes = query.list(); sascha@187: if (attributes.isEmpty()) { sascha@187: peer = new Attribute(value); sascha@187: session.save(peer); sascha@187: } sascha@187: else { sascha@187: peer = attributes.get(0); sascha@187: } sascha@187: } sascha@187: return peer; sascha@187: } sascha@185: } sascha@185: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :