001package org.biopax.paxtools.impl.level3;
002
003
004import org.biopax.paxtools.model.BioPAXElement;
005import org.biopax.paxtools.model.level3.ChemicalConstant;
006import org.hibernate.annotations.Cache;
007import org.hibernate.annotations.CacheConcurrencyStrategy;
008import org.hibernate.annotations.DynamicInsert;
009import org.hibernate.annotations.DynamicUpdate;
010import org.hibernate.annotations.Proxy;
011
012import javax.persistence.Entity;
013import javax.persistence.Transient;
014
015import static java.lang.Float.compare;
016
017@Entity
018@Proxy(proxyClass=ChemicalConstant.class)
019@DynamicUpdate @DynamicInsert
020@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
021public abstract class ChemicalConstantImpl extends L3ElementImpl implements ChemicalConstant {
022    float ionicStrength;
023    float ph;
024    float pMg;
025    float temperature;
026
027    public ChemicalConstantImpl() {
028        this.ionicStrength = KPrimeImpl.UNKNOWN_FLOAT;
029        this.ph = KPrimeImpl.UNKNOWN_FLOAT;
030        this.pMg = KPrimeImpl.UNKNOWN_FLOAT;
031        this.temperature = KPrimeImpl.UNKNOWN_FLOAT;
032    }
033
034    public float getIonicStrength() {
035        return ionicStrength;
036    }
037
038    public void setIonicStrength(float ionicStrength) {
039        this.ionicStrength = ionicStrength;
040    }
041
042    public float getPh() {
043        return ph;
044    }
045
046    public void setPh(float ph) {
047        this.ph = ph;
048    }
049
050    public float getPMg() {
051        return pMg;
052    }
053
054    public void setPMg(float pMg) {
055        this.pMg = pMg;
056    }
057
058    public float getTemperature() {
059        return temperature;
060    }
061
062    public void setTemperature(float temperature) {
063        this.temperature = temperature;
064    }
065
066    @Transient
067        public Class<? extends ChemicalConstant> getModelInterface() {
068        return ChemicalConstant.class;
069    }
070
071    @Override
072    protected boolean semanticallyEquivalent(BioPAXElement element) {
073        if(!(element instanceof ChemicalConstant))
074            return false;
075
076        final ChemicalConstant aKPrime = (ChemicalConstant) element;
077        return
078                compare(aKPrime.getIonicStrength(), getIonicStrength()) == 0 &&
079                        compare(aKPrime.getPh(), getPh()) == 0 &&
080                        compare(aKPrime.getPMg(), pMg) == 0 &&
081                        compare(aKPrime.getTemperature(), getTemperature()) == 0;
082
083    }
084
085    @Override
086    public int equivalenceCode() {
087        return super.equivalenceCode();    //To change body of overridden methods use File | Settings | File Templates.
088    }
089}