Skip to content
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<artifactId>graph-core</artifactId>

<packaging>jar</packaging>
<version>2.0.9</version>
<version>2.0.12.CT</version>
<name>Graph Core Next Generation</name>

<description>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,24 +1,29 @@
package org.reactome.server.graph.domain.model;

import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
import java.io.Serializable;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
import java.util.SortedSet;
import java.util.TreeSet;

import org.reactome.server.graph.domain.annotations.ReactomeProperty;
import org.reactome.server.graph.domain.annotations.ReactomeSchemaIgnore;
import org.reactome.server.graph.domain.annotations.ReactomeTransient;
import org.reactome.server.graph.domain.relationship.ModifiedList;
import org.reactome.server.graph.domain.result.DatabaseObjectLike;
import org.springframework.data.neo4j.core.schema.Id;
import org.springframework.data.neo4j.core.schema.Node;
import org.springframework.data.neo4j.core.schema.Relationship;
import org.springframework.lang.NonNull;

import java.io.Serializable;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Objects;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;

/**
* DatabaseObject contains the minimum fields used to define an instance of an Reactome entry
Expand Down Expand Up @@ -62,13 +67,21 @@ public abstract class DatabaseObject implements Serializable, Comparable<Databas

@Relationship(type = "modified", direction = Relationship.Direction.INCOMING)
private InstanceEdit modified;

// This is a list of InstanceEdits that have modified this DatabaseObject.
// So that we can track all modifications, not just the most recent one.
@Relationship(type = "modifiedList", direction = Relationship.Direction.INCOMING)
private SortedSet<ModifiedList> modifiedList;

@Relationship(type = "stableIdentifier")
private StableIdentifier stableIdentifier;

public DatabaseObject() {
}

public DatabaseObject(Long dbId) {
this.dbId = dbId;
}
}

// @ReactomeSchemaIgnore
// public Long getId() {
Expand All @@ -79,6 +92,40 @@ public DatabaseObject(Long dbId) {
// this.id = id;
// }

public StableIdentifier getStableIdentifier() {
return stableIdentifier;
}

public void setStableIdentifier(StableIdentifier stableIdentifier) {
this.stableIdentifier = stableIdentifier;
}

public List<InstanceEdit> getModifiedList() {
if (this.modifiedList == null || this.modifiedList.isEmpty()) {
return null;
}

List<InstanceEdit> rtn = new ArrayList<>();
for (ModifiedList modified : this.modifiedList) {
rtn.add(modified.getInstanceEdit());
}
return rtn;
}

public void setModifiedList(List<InstanceEdit> modifiedList) {
if (modifiedList == null || modifiedList.isEmpty()) {
return;
}
this.modifiedList = new TreeSet<>();
int order = 0;
for (InstanceEdit instanceEdit : modifiedList) {
ModifiedList aux = new ModifiedList();
aux.setInstanceEdit(instanceEdit);
aux.setOrder(order++);
this.modifiedList.add(aux);
}
}

public Long getDbId() {
return dbId;
}
Expand Down
11 changes: 11 additions & 0 deletions src/main/java/org/reactome/server/graph/domain/model/Deleted.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ public class Deleted extends MetaDatabaseObject{
@Deprecated
@ReactomeProperty(originName = "deletedInstanceDB_ID")
private List<Integer> deletedInstanceDbId;

@ReactomeProperty(originName = "replacementInstanceDB_IDs")
private List<Integer> replacementInstanceDbIds;

public Deleted() {
}
Expand All @@ -34,6 +37,14 @@ public String getCuratorComment() {
return curatorComment;
}

public List<Integer> getReplacementInstanceDbIds() {
return replacementInstanceDbIds;
}

public void setReplacementInstanceDbIds(List<Integer> replacementInstanceDbIds) {
this.replacementInstanceDbIds = replacementInstanceDbIds;
}

public void setCuratorComment(String curatorComment) {
this.curatorComment = curatorComment;
}
Expand Down
48 changes: 43 additions & 5 deletions src/main/java/org/reactome/server/graph/domain/model/Event.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,21 @@
package org.reactome.server.graph.domain.model;

import com.fasterxml.jackson.annotation.JsonIgnore;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
import java.util.stream.Collectors;

import org.reactome.server.graph.domain.annotations.ReactomeProperty;
import org.reactome.server.graph.domain.annotations.ReactomeSchemaIgnore;
import org.reactome.server.graph.domain.annotations.ReactomeTransient;
import org.reactome.server.graph.domain.relationship.HasCompartment;
import org.reactome.server.graph.domain.relationship.StructureModified;
import org.springframework.data.neo4j.core.schema.Node;
import org.springframework.data.neo4j.core.schema.Relationship;

import java.util.*;
import com.fasterxml.jackson.annotation.JsonIgnore;

@SuppressWarnings({"unused"})

Expand All @@ -31,6 +38,8 @@ public abstract class Event extends DatabaseObject implements Trackable, Deletab
private String releaseStatus;
@ReactomeProperty(addedField = true)
private String speciesName;
@ReactomeProperty(originName = "_doRelease")
private Boolean doRelease;

@Relationship(type = "authored", direction = Relationship.Direction.INCOMING)
private List<InstanceEdit> authored;
Expand Down Expand Up @@ -114,8 +123,13 @@ public abstract class Event extends DatabaseObject implements Trackable, Deletab
@Relationship(type = "internalReviewed", direction = Relationship.Direction.INCOMING)
private List<InstanceEdit> internalReviewed;

// For some reason, we have to define a relationship to keep the order
// for newly added InstanceEdit in this attribute. Not sure why.
// Use SortedSet to make sure the order is correct. Most likely
// the sorting is conducted when the list, which is generated by the framework(?), is
// converted into a SortedSet.
@Relationship(type = "structureModified", direction = Relationship.Direction.INCOMING)
private List<InstanceEdit> structureModified;
private SortedSet<StructureModified> structureModified;

@ReactomeTransient
@Relationship(type = "replacementInstances", direction = Relationship.Direction.INCOMING)
Expand Down Expand Up @@ -392,11 +406,26 @@ public void setInternalReviewed(List<InstanceEdit> internalReviewed) {
}

public List<InstanceEdit> getStructureModified() {
return structureModified;
if (structureModified == null || structureModified.isEmpty())
return null;
return this.structureModified.stream().map(s -> s.getInstanceEdit()).collect(Collectors.toList());
}

public void setStructureModified(List<InstanceEdit> structureModified) {
this.structureModified = structureModified;
if (structureModified != null && structureModified.size() > 0) {
int order = 0;
this.structureModified = new TreeSet<>();
for (InstanceEdit ie : structureModified) {
StructureModified sm = new StructureModified();
sm.setId(ie.getDbId());
sm.setInstanceEdit(ie);
sm.setOrder(order);
order ++;
this.structureModified.add(sm);
}
}
else
this.structureModified = null;
}

@Override
Expand All @@ -416,4 +445,13 @@ public List<UpdateTracker> getUpdateTrackers() {
public void setUpdateTrackers(List<UpdateTracker> updateTrackers) {
this.updateTrackers = updateTrackers;
}


public Boolean getDoRelease() {
return doRelease;
}

public void setDoRelease(Boolean doRelease) {
this.doRelease = doRelease;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

@SuppressWarnings("unused")
@Node
public class GO_BiologicalProcess extends GO_Term{
public class GO_BiologicalProcess extends GO_Term {

public GO_BiologicalProcess() {}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,6 @@ public void setHasPart(List<GO_CellularComponent> hasPart) {
this.hasPart = hasPart;
}

public List<GO_CellularComponent> getInstanceOf() {
return instanceOf;
}

public void setInstanceOf(List<GO_CellularComponent> instanceOf) {
this.instanceOf = instanceOf;
}

public List<GO_CellularComponent> getSurroundedBy() {
return surroundedBy;
Expand Down
67 changes: 4 additions & 63 deletions src/main/java/org/reactome/server/graph/domain/model/GO_Term.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,73 +12,14 @@
*/
@SuppressWarnings("unused")
@Node
public abstract class GO_Term extends DatabaseObject{

@ReactomeProperty
private String accession;
// will be filled together with url
private String databaseName;
@ReactomeProperty
private String definition;
@ReactomeProperty
private String name;
@ReactomeProperty(addedField = true)
private String url;
@Relationship(type = "referenceDatabase")
private ReferenceDatabase referenceDatabase;
public abstract class GO_Term extends ExternalOntology {

public GO_Term() {}

public GO_Term(Long dbId) {
super(dbId);
}

public String getAccession() {
return accession;
super();
setDbId(dbId);
}

public void setAccession(String accession) {
this.accession = accession;
}

public String getDatabaseName() {
return databaseName;
}

public void setDatabaseName(String databaseName) {
this.databaseName = databaseName;
}

public String getDefinition() {
return definition;
}

public void setDefinition(String definition) {
this.definition = definition;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getUrl() {
return url;
}

public void setUrl(String url) {
this.url = url;
}

public ReferenceDatabase getReferenceDatabase() {
return referenceDatabase;
}

public void setReferenceDatabase(ReferenceDatabase referenceDatabase) {
this.referenceDatabase = referenceDatabase;
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import org.reactome.server.graph.domain.annotations.ReactomeProperty;
import org.springframework.data.neo4j.core.schema.Node;
import org.springframework.data.neo4j.core.schema.Relationship;

@SuppressWarnings("unused")
@Node
Expand All @@ -19,9 +20,20 @@ public class LiteratureReference extends Publication {
private Integer volume;
@ReactomeProperty
private Integer year;

@Relationship(type = "retractionStatus")
private RetractionStatus retractionStatus;

public LiteratureReference() {}

public RetractionStatus getRetractionStatus() {
return retractionStatus;
}

public void setRetractionStatus(RetractionStatus retractionStatus) {
this.retractionStatus = retractionStatus;
}

public LiteratureReference(Long dbId) {
super(dbId);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public class Pathway extends Event {
private Integer diagramHeight;

@ReactomeProperty
private String isCanonical;
private Boolean isCanonical;

@ReactomeProperty
private String lastUpdatedDate;
Expand Down Expand Up @@ -102,11 +102,11 @@ public void setDiagramHeight(Integer diagramHeight) {
this.diagramHeight = diagramHeight;
}

public String getIsCanonical() {
public Boolean getIsCanonical() {
return isCanonical;
}

public void setIsCanonical(String isCanonical) {
public void setIsCanonical(Boolean isCanonical) {
this.isCanonical = isCanonical;
}

Expand Down
Loading