001package org.biopax.paxtools.impl.level3;
002
003import org.biopax.paxtools.model.level3.Control;
004import org.biopax.paxtools.model.level3.Pathway;
005import org.biopax.paxtools.model.level3.PathwayStep;
006import org.biopax.paxtools.model.level3.Process;
007import org.biopax.paxtools.util.BPCollections;
008import org.hibernate.annotations.*;
009
010import javax.persistence.Entity;
011import javax.persistence.ManyToMany;
012import java.util.Set;
013
014@Entity
015@Proxy(proxyClass= Process.class)
016@DynamicUpdate @DynamicInsert
017@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
018public abstract class ProcessImpl extends EntityImpl implements Process
019{
020// ------------------------------ FIELDS ------------------------------
021
022
023        private Set<Control> controlledOf;
024        private Set<PathwayStep> stepProcessOf;
025        private Set<Pathway> pathwayComponentOf;
026
027// --------------------------- CONSTRUCTORS ---------------------------
028
029        public ProcessImpl()
030        {
031                this.controlledOf = BPCollections.I.createSafeSet();
032                this.stepProcessOf = BPCollections.I.createSafeSet();
033                this.pathwayComponentOf = BPCollections.I.createSafeSet();
034        }
035
036// ------------------------ INTERFACE METHODS ------------------------
037
038
039// --------------------- Interface PathwayComponent ---------------------
040
041
042    @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
043        @ManyToMany(targetEntity = PathwayImpl.class, mappedBy = "pathwayComponent")
044        public Set<Pathway> getPathwayComponentOf()
045        {
046                return pathwayComponentOf;
047        }
048
049// --------------------- Interface process ---------------------
050
051    @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
052        @ManyToMany(targetEntity = PathwayStepImpl.class, mappedBy = "stepProcessX")
053        public Set<PathwayStep> getStepProcessOf()
054        {
055                return stepProcessOf;
056        }
057
058    @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
059        @ManyToMany(targetEntity = ControlImpl.class, mappedBy = "controlled")
060        public Set<Control> getControlledOf()
061        {
062                return controlledOf;
063        }
064
065        protected void setControlledOf(Set<Control> controlledOf)
066        {
067                this.controlledOf = controlledOf;
068        }
069
070        protected void setStepProcessOf(Set<PathwayStep> stepProcessOf)
071        {
072                this.stepProcessOf = stepProcessOf;
073        }
074
075        protected void setPathwayComponentOf(Set<Pathway> pathwayComponentOf)
076        {
077                this.pathwayComponentOf = pathwayComponentOf;
078        }
079}