001package org.biopax.paxtools.impl.level3;
002
003import org.biopax.paxtools.model.BioPAXElement;
004import org.biopax.paxtools.model.level3.DeltaG;
005import org.hibernate.annotations.Cache;
006import org.hibernate.annotations.CacheConcurrencyStrategy;
007import org.hibernate.annotations.Proxy;
008import org.hibernate.annotations.DynamicInsert;
009import org.hibernate.annotations.DynamicUpdate; 
010import org.hibernate.search.annotations.Indexed;
011
012import javax.persistence.Entity;
013import javax.persistence.Transient;
014
015import static java.lang.Float.compare;
016
017@Entity
018@Proxy(proxyClass = DeltaG.class)
019@Indexed
020@DynamicUpdate @DynamicInsert
021@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
022public class DeltaGImpl extends ChemicalConstantImpl implements DeltaG {
023
024    private float deltaGPrime0 = UNKNOWN_FLOAT;
025
026
027    public DeltaGImpl() {
028    }
029
030    //
031    // BioPAXElement interface implementation
032    //
033    ////////////////////////////////////////////////////////////////////////////
034    @Transient
035    public Class<? extends DeltaG> getModelInterface() {
036        return DeltaG.class;
037    }
038
039
040    protected boolean semanticallyEquivalent(BioPAXElement element) {
041        return super.semanticallyEquivalent(element) && (compare(((DeltaG) element).getDeltaGPrime0(), deltaGPrime0) == 0);
042    }
043
044
045    public int equivalenceCode() {
046        return super.equivalenceCode()+
047                29 + deltaGPrime0 != +0.0f ?
048                Float.floatToIntBits(deltaGPrime0) : 0;
049    }
050
051    public float getDeltaGPrime0() {
052        return deltaGPrime0;
053    }
054
055    public void setDeltaGPrime0(float deltaGPrime0) {
056        this.deltaGPrime0 = deltaGPrime0;
057    }
058
059}