Skip to content

Draft: Model update

Julien Seiler requested to merge model_update into dev
  1. La classe DataLink doit avoir un attribut ForeignKey ISAObject.

  2. Utiliser des foreignKey pour les interactions entre les différentes class qui héritent de la classe ISAObject. La classe Study doit avoir un attribut ForeignKey Investigations et la classe Assay doit avoir un attribut ForeignKey studies.

comment(julien): Il faudrait voir si la classe ISAObject ne devrait pas être une classe abstraite afin de ne pas apparaître dans le modèle.

classDiagram

class OpenlinkUser {
	string vault_id
	string mail
	def set_vaultid()
	def get_vaultid()
	}

class Tool {
	int id
	string name
	foreignKey author
	string connector
	DateTime date_created
	def get_all_public_param()
	def getPublicParam()
	def getPrivrateParam()
	def connector()
	def is_user_linked()
	def get_tool_state_user()
	}
Tool "*" -- "1" OpenlinkUser


class ToolParam {
	int id
	foreignKey tool_id
	string key
	string value
	}
ToolParam "*" -- "1" Tool

class ToolStateUser {
	foreignKey user
	foreignKey tool
	boolean asyncTask
	}
ToolStateUser "*" -- "1" OpenlinkUser
ToolStateUser "*" -- "1" Tool
		
class Datalink {
	string name
	int dataobject_id
	string dataobject_type
	string remote_url
	bigint size
	string icon
	boolean has_children
	foreignKey tool_id
	foreignKey author
	foreignKey isaobject
	}
Tool "1" -- "*" Datalink
OpenlinkUser "1" -- "*" Datalink
ISAObject "1" -- "*" Datalink


class ISAObject {
	int id
	string name
	string description
	foreignKey author
	string status
	datetime date_created
	datetime date_modified
	string isa_type
	def get_isa_class()
	def list_datalink()
	}
ISAObject "*" -- "1" OpenlinkUser

class Investigation{
        int investigation_id
	def list_studies()
	def list_users()
	def list_tools()
	def get_assay()
	def get_study()
	def get_investigation()
	}
	
ISAObject <|-- Investigation

class Study {
	int study_id
	foreignKey investigation
	def list_assays()
	def get_investigation()
	def get_assay()
	}
Study "*" -- "1" Investigation

class Assay {
	int study_id
	foreignKey study
	}
Assay "*" -- "1" Study

ISAObject <|-- Study
ISAObject <|-- Assay
Edited by Julien Seiler

Merge request reports