Skip to content

Class List

JustinRenneke edited this page Oct 19, 2016 · 4 revisions

#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();
}