001package org.biopax.paxtools.impl.level3;
002
003import org.biopax.paxtools.model.BioPAXElement;
004import org.biopax.paxtools.model.level3.KPrime;
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/**
018 */
019@Entity
020@Proxy(proxyClass=KPrime.class)
021@Indexed
022@DynamicUpdate @DynamicInsert
023@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
024public class KPrimeImpl extends ChemicalConstantImpl implements KPrime
025{
026
027    private float kPrime = UNKNOWN_FLOAT;
028    
029
030    public KPrimeImpl() {
031        }
032        
033        //
034        // bioPAXElement interface implementation
035        //
036        ////////////////////////////////////////////////////////////////////////////
037
038        @Transient
039        public Class<? extends KPrime> getModelInterface()
040        {
041                return KPrime.class;
042        }
043
044        protected boolean semanticallyEquivalent(BioPAXElement element)
045        {
046        return super.semanticallyEquivalent(element) && (compare(((KPrime) element).getKPrime(), kPrime) == 0);
047        }
048
049        public int equivalenceCode()
050        {
051        return super.equivalenceCode()+
052                29 + kPrime != +0.0f ?
053                Float.floatToIntBits(kPrime) : 0;
054        }
055
056        //
057        // KPrime interface implementation
058        //
059        ////////////////////////////////////////////////////////////////////////////
060
061        
062        public float getKPrime()
063        {
064                return kPrime;
065        }
066
067        public void setKPrime(float prime)
068        {
069                this.kPrime = prime;
070        }
071
072        
073}