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}