-
Notifications
You must be signed in to change notification settings - Fork 4
Class List
#Class List
Authored by: Wenqiang Bo and Justin Renneke
Reviewed by: Scott Wolcott and William Morrison
Note: All appropriate constructors, setters, and getters are assumed to exist to avoid clutter.
// userClass acts as a container for all user related data and facilitates logins, associating users with projects, access permissions, etc.
userClass {
userId:Int
userName:String
userEmail:String
userHomepage:String
userCategory:String
lastLoginDate:String
passwordHash: String
isActive:Bool
Description:String
associatedProjects: String
}
// userListClass is a container class for userClass that allows for easier tracking and manipulation of userClass instantiations
userListClass{
userListID:Int
userListName:String
userList:hashmap
Description:String
}
// DataSetClass is a class representing a DataSet as defined in the OCDX specifications
DataSetClass {
DataSetId:Int
DataSetName:String
DataSet
SNC
Description:string
Permission:Int
Hash:String
UploadDate:String
CreateBy:String
ModifyDate:String
LastModifiedBy:String
}
// ManifestClass handles manifest related data as described by the OCDX specifications and controls associations between datasets and SNC files
ManifestClass {
standardVersions: String
Creator: String
ManifestID:Int
dateCreated: DateTime
ManifestName:String
DataSets: hashmap
Comment:String
AssociatedDataSet: String
AssociatedSNC: String
}
// SNC is simply a class describing an SNC set. The attributes of this need to be flushed out, but it is related to one or more DataSets via the ManifestClass
SNC{
Scripts
Notebooks
ConfigFiles
}
// This is the overarching System level class that contains integral functionality needed to satisfy use cases and tie the above classes together into a coherent web that describes a functional OCDX repository
SystemClass {
CurrentUser: userClass
CurrentTime:String
UserLists:hashmap
Login()
CreateNewUser()
DeleteUser()
AssociateProjects()
AssociateSNCToManifest()
AssociateDatasetToManifest()
UploadDataSet()
DownloadInfo()
Save()
BrowseManifest()
SearchOnManifest()
ContributeToExistingDataset()
CreateGenericJupyterHubInstance()
CreateSpecificJupyterHubInstance()
GenerateUploadManifest()
SpawnJHInstance()
SortResults()
}
QueryResultClass{
Manifests:hashmap
DisplayResults();
}