package module.fileManagement.domain; valueType java.lang.Class as Class { externalizeWith { String getName(); } internalizeWith pt.ist.bennu.core.domain.util.ClassInternalizer.internalize(); } class task.PopulateRootDirTask extends .pt.ist.bennu.core.domain.scheduler.Task { } class AbstractFileNode { } class FileNode extends AbstractFileNode { } class DirNode extends AbstractFileNode { String name; Long size; Long quota; Integer sequenceNumber; String filenameTemplate; Boolean root (REQUIRED); } class SharedFileNode extends FileNode { } class SharedDirNode extends DirNode { } class Document { DateTime lastModifiedDate; } // RELATIONS class VersionedFile extends .pt.ist.fenixframework.plugins.fileSupport.domain.GenericFile { } relation VersionedFileVersionedFile { VersionedFile playsRole previousVersion; VersionedFile playsRole nextVersion; } relation DocumentVersionedFile { Document playsRole document; VersionedFile playsRole lastVersionedFile { multiplicity 1..1; } } relation SharedFileNodeFileNode { FileNode playsRole node { multiplicity 1..1; } SharedFileNode playsRole sharedFileNodes { multiplicity *; } } relation SharedDirNodeDirNode { DirNode playsRole node { multiplicity 1..1; } SharedDirNode playsRole sharedDirNodes { multiplicity *; } } relation FileNodeFile { FileNode playsRole fileNode { multiplicity *; } Document playsRole document { multiplicity 1; } } relation DirNodeAbstractFileNode { DirNode playsRole parent; AbstractFileNode playsRole child { multiplicity *; } } relation DirNodeReadGroup { DirNode playsRole dirNodeFromReadGroup { multiplicity *; } .pt.ist.bennu.core.domain.groups.PersistentGroup playsRole readGroup; } relation DirNodeWriteGroup { DirNode playsRole dirNodeFromWriteGroup { multiplicity *; } .pt.ist.bennu.core.domain.groups.PersistentGroup playsRole writeGroup; } relation DocumentReadGroup { Document playsRole documentFromReadGroup { multiplicity *; } .pt.ist.bennu.core.domain.groups.PersistentGroup playsRole readGroup; } relation DocumentWriteGroup { Document playsRole documentFromWriteGroup { multiplicity *; } .pt.ist.bennu.core.domain.groups.PersistentGroup playsRole writeGroup; } relation UserAbstractFileNode { .pt.ist.bennu.core.domain.User playsRole user; DirNode playsRole fileRepository; } relation PartyFileRepository { .module.organization.domain.Party playsRole party; DirNode playsRole fileRepository; } relation DirNodeTrashNode { DirNode playsRole trash; DirNode playsRole rootDirNode; } class FileManagementSystem { } relation FileManagementMyOrg { .pt.ist.bennu.core.domain.MyOrg playsRole myOrg; FileManagementSystem playsRole fileManagementSystem; } relation FMSDirNode { DirNode playsRole dirNode { multiplicity *; } FileManagementSystem playsRole fileManagementSystem; }