package net.sourceforge.fenixedu.domain; /* DOMAIN_MODEL.DML * * The Fenix Project Domain Model * The institution specific model. * */ enum net.sourceforge.fenixedu.domain.inquiries.ScholarityLevelType as ScholarityLevelType; enum net.sourceforge.fenixedu.domain.inquiries.ProfessionalSituationType as inquiries.ProfessionalSituationType; enum net.sourceforge.fenixedu.domain.PasswordRecoverRequestMode as PasswordRecoverRequestMode; enum net.sourceforge.fenixedu.domain.AccountActivationRequestMode as AccountActivationRequestMode; enum net.sourceforge.fenixedu.domain.organizationalStructure.UnofficialContractType as UnofficialContractType; enum net.sourceforge.fenixedu.domain.externalServices.ServiceTypeEnum as ServiceTypeEnum; enum net.sourceforge.fenixedu.domain.externalServices.ServiceStateEnum as ServiceStateEnum; enum net.sourceforge.fenixedu.domain.teacher.TeacherObservation as TeacherObservation; enum net.sourceforge.fenixedu.util.RegimeType as RegimeType; enum net.sourceforge.fenixedu.domain.candidacy.LanguageCourseLevelType as LanguageCourseLevelType; enum net.sourceforge.fenixedu.domain.candidacy.CandidacyQuestionType as CandidacyQuestionType; enum net.sourceforge.fenixedu.domain.PhotoType as PhotoType; enum net.sourceforge.fenixedu.domain.PhotoState as PhotoState; enum net.sourceforge.fenixedu.domain.PhotographContentSize as PhotographContentSize; enum net.sourceforge.fenixedu.domain.ShiftCapacityType as ShiftCapacityType; enum net.sourceforge.fenixedu.domain.tuition.TuitionArticleState as TuitionArticleState; enum net.sourceforge.fenixedu.domain.tuition.TuitionVersionState as TuitionVersionState; enum net.sourceforge.fenixedu.domain.tuition.TuitionVersionType as TuitionVersionType; enum net.sourceforge.fenixedu.domain.tuition.FeeTuitionArticleType as FeeTuitionArticleType; enum net.sourceforge.fenixedu.domain.tuition.DegreeTuitionArticleType as DegreeTuitionArticleType; enum net.sourceforge.fenixedu.domain.resource.access.UserCardType as UserCardType; enum net.sourceforge.fenixedu.domain.resource.access.CardReaderType as CardReaderType; class externalServices.ServiceEntry extends DomainObject { String systemExternalId; String homeDrive; String homeDirectory; Integer errors; Integer unixUid; Integer unixGid; } class externalServices.LdapServiceEntry extends externalServices.ServiceEntry { } class externalServices.EmailServiceEntry extends externalServices.ServiceEntry { } class externalServices.ElearningServiceEntry extends externalServices.ServiceEntry { } class externalServices.Service extends DomainObject { String name; ServiceTypeEnum type; } class externalServices.ServiceState extends DomainObject { ServiceStateEnum state; } class externalServices.SynchronizationSchedule extends DomainObject { String synchronizationInterval; DateTime beginDate; ServiceTypeEnum service; } class externalServices.ActiveDirectoryGroup extends DomainObject { String name; String description; } class candidacy.degree.DgesFile extends DomainObject { String filename; } class candidacy.degree.DgesFileEntry extends DomainObject { String documentIdNumber; IDDocumentType idDocumentType; String studentInitialName; String degreeCode; Integer year; String studentChangedName; String dgesPassword; Gender gender; String address; String areaCode; String areaOfAreaCode; String phone; String mobile; YearMonthDay dateOfBirth; } class candidacy.degree.M23File extends DomainObject { String filename; } class candidacy.degree.M23FileEntry extends DomainObject { String documentIdNumber; IDDocumentType idDocumentType; String studentInitialName; String degreeCode; String mobilePhone; String email; String year; } class KnownGivenName extends DomainObject { String name; Gender gender; } class Password extends DomainObject { String password; } /* class PresenceSheet extends DomainObject { } class PrintedPresenceSheet extends DomainObject { DateTime generationDate; Integer maxStudentsInAnyPrintedExecutionCourses; } class ExecutionCourseInPrintedPresenceSheet extends DomainObject { Integer printedOrder; } class FilledPresenceSheet extends DomainObject { DateTime insertedDate; DateTime markedLessonDate; DateTime correctedMarkedLessonDate; Integer markedCountAttends; Integer correctedCountAttends; String persistedDocumentURI; } */ /* * This DomainObject is used in the migration scripts to test the migration process * Please DO NOT REMOVE - by jpereira @ 21-08-2007 */ class .com.linkare.mappings.test.DataRowTest extends DomainObject { Integer value1; String value2; } class student.MarkRevisionRequest extends DomainObject { String observations; } class teacher.LegalRegimenType extends DomainObject { MultiLanguageString name; Boolean isEnd; Boolean isDeath; } class County extends DomainObject { String code; String name; } class Parish extends DomainObject { String code; String name; } class areaCode.AreaCode extends DomainObject{ String code; String areaCode; String subAreaCode; String description; } class inquiries.InquiriesDemographicalAndAcademical extends DomainObject { Integer studentCurricularYear; Integer age; Gender gender; DayPeriodType dayPeriodType; Integer isWorkingStudent; Integer reprovedAnyCourse; Integer numReprovedCourses; Integer reprovedAnyYear; Integer numReprovedYears; Integer ingressUniversityFirstChoice; Integer ingressDegreeFirstChoice; Integer isDislocated; Integer hasSocialServicesScholarship; ScholarityLevelType motherScholarityLevel; ScholarityLevelType fatherScholarityLevel; inquiries.ProfessionalSituationType motherProfessionalSituation; inquiries.ProfessionalSituationType fatherProfessionalSituation; Integer degreeTheoreticalPartClassification; Integer degreePracticalPartClassification; Integer degreeCoursewareDivisionClarity; Integer degreeGroupWorkLearning; Integer degreeIdeasAndCommunicationClassification; Integer degreeJobMarketIntegration; Integer degreeCoursesTotalNumber; Integer degreeWeeklyLoad; Integer degreeEvaluationElementsNumber; Integer degreeCourseShiftsSize; Integer degreeWorkVolume; Integer degreeGlobalSatisfaction; Integer universityGlobalSatisfaction; String problematicDataReport; DateTime submitDate; Boolean saved; Boolean wasSavedAutomatically; } class ExecutionDegreeExternalInformation extends DomainObject { MultiLanguageString name; String url; } class candidacy.CETCandidacy extends candidacy.StudentCandidacy { } class candidacy.PostGraduationCandidacy extends candidacy.StudentCandidacy { } class candidacy.InstitutionalCandidacy extends candidacy.StudentCandidacy { } class candidacy.MobilityStudentCandidacy extends candidacy.StudentCandidacy { CurricularPeriodType duration; Integer numberOfYearsInHigherEducation; String originDegreeName; CycleType originDegreeCycle; String academicCoordinatorName; String academicCoordinatorEmail; Boolean scholarship; Integer yearOfStudy; Boolean prolongation; String landlordContact; Boolean nomination; } class candidacy.CandidacyProperties extends DomainObject { Boolean hidden; Boolean notAvailable; } class studentCurriculum.Certification extends DomainObject { } class studentCurriculum.ISCTEExemptionCredits extends studentCurriculum.Credits { } class studentCurriculum.ISCTETransitionCredits extends studentCurriculum.Credits { } class studentCurriculum.ISCTEEquivalence extends studentCurriculum.Equivalence { } class studentCurriculum.CurricularIntegration extends studentCurriculum.ISCTEEquivalence { } class studentCurriculum.ISCTESubstitution extends studentCurriculum.Substitution { } class studentCurriculum.ISCTEDismissalWrapper extends studentCurriculum.EnrolmentWrapper { } class studentCurriculum.ISCTEInternalEnrolmentWrapper extends studentCurriculum.InternalEnrolmentWrapper { } class studentCurriculum.ISCTEExternalEnrolmentWrapper extends studentCurriculum.ExternalEnrolmentWrapper { } class serviceRequests.documentRequests.ISCTEDiplomaSupplementRequest extends serviceRequests.documentRequests.DocumentRequest { CycleType requestedCycle; } class serviceRequests.documentRequests.ISCTECurricularCourseSheetRequest extends serviceRequests.documentRequests.DocumentRequest { CycleType requestedCycle; } class serviceRequests.documentRequests.SchoolRegistrationProofRequest extends serviceRequests.documentRequests.DeclarationRequest { Boolean payedTuition; } class serviceRequests.documentRequests.GenericEnrollmentDeclarationRequest extends serviceRequests.documentRequests.DeclarationRequest { } class serviceRequests.documentRequests.ISCTEFinalizationCertificateRequest extends serviceRequests.documentRequests.CertificateRequest { CycleType requestedCycle; } class PasswordRecoverRequest extends DomainObject { String passwordToken; DateTime requestTime; String sentRequestAddress; PasswordRecoverRequestMode sentRequestMode; } class contacts.PartyContactValidationRequest extends DomainObject { String validationRequest; DateTime requestTime; } class AccountActivation extends DomainObject { DateTime requestTime; Boolean activated; Boolean delivered; String sentRequestAddress; AccountActivationRequestMode sentRequestMode; Integer numberOfNotifications; } class Collaborator extends DomainObject { Boolean active; } class Advisor extends DomainObject { Boolean active; } class Guest extends DomainObject { Boolean active; } class ExternalEditor extends DomainObject { Boolean active; } class Inspector extends DomainObject { Boolean active; } class Researcher extends DomainObject { Boolean active; } class SecurityStaff extends DomainObject { Boolean active; } class organizationalStructure.UnofficialContract extends organizationalStructure.Contract { UnofficialContractType type; } class contacts.PhysicalDeliveryOfficeContact extends contacts.PartyContact { String value; } class contacts.PostBoxContact extends contacts.PartyContact { String value; } /* class space.PostBox extends space.Space { String value; } */ class student.registrationStates.MobilityProgramFinishedState extends student.registrationStates.RegistrationState { } class student.registrationStates.QuittedState extends student.registrationStates.RegistrationState { } class candidacy.StudentIngression extends DomainObject { String ingression; EntryPhase entryPhase; String remarks; //Integer numberOfOrder; } class gradeBook.GradeBook extends DomainObject { String code; Integer currentVolumeNumber; } class gradeBook.GradeBookVolume extends DomainObject { Integer number; } class gradeBook.GradeBookSheet extends DomainObject { Integer number; } class gradeBook.AnnulledGradeBookSheet extends DomainObject { Integer number; String reason; Boolean regularized; MarkSheetType markSheetType; String checkSum; DateTime evaluationDateDateTime; DateTime annulledDate; String newCheckSum; } class gradeBook.AnnulledGradeBookLine extends DomainObject { String checkSum; EnrolmentEvaluationType enrolmentEvaluationType; YearMonthDay examDateYearMonthDay; Grade grade; String gradeValue; String observation; YearMonthDay enrolmentDate; MarkSheetType season; Integer registrationNumber; Boolean deleted; } class DegreeDataByExecutionYear extends DomainObject { Character ectsGradingScale; Integer percentageOfGraduates; String gradesRange; } class degreeStructure.CycleCourseGroupInfo extends DomainObject { String cycleGraduationTitle; Language language; } class DeletedObject extends DomainObject { String objectClass; String objectValues; } //FutureTeacher (added by pramc) class FutureTeacher extends DomainObject { Integer teacherNumber; String name; } //Rebides class teacher.Rebides extends DomainObject { Double major; Double minor; RegimeType regimeType; Integer percentage; } /* Creation of a "allmost" generical lock system for parts of the application to some users. This was mainly created to support the inquiries sanctions, but it maybe extended to support other block requests */ class security.BlockDefinition extends DomainObject { String urlPathRegex; String whyMessage; } class security.PathRestrictionTemplate extends DomainObject { //The url path definition that is being blocked String urlPathRegex; //The message to display to the user in case he is being blocked String whyMessage; //The start datetime this blocking will start occuring - null if "allways" applicable until "end" DateTime start; //The end datetime this blocking will stop occuring - null if "allways" applicable from "start" DateTime end; //The responsible for the blocking email String responsibleEmail; //May the responsible be contacted because of this? Boolean responsibleAvailableForContact; //The label for this restriction template - Easyer way to display and remember rules String label; } class security.PathRestriction extends DomainObject { //What has the user to say for his favor? String unlockRequest; //The justification for the end of restriction String endJustification; //The date for the end of restriction - If defined, then the restriction will stop after this date defined... otherwise, //the restriction will be kept for ever... DateTime end; } class organizationalStructure.AutonomousSectionUnit extends organizationalStructure.Unit { } class organizationalStructure.CentralServiceUnit extends organizationalStructure.Unit { } class organizationalStructure.TeachingUnit extends organizationalStructure.Unit { } class organizationalStructure.ParticipatedInstitutionUnit extends organizationalStructure.Unit { } class organizationalStructure.ProjectUnit extends organizationalStructure.Unit { } class organizationalStructure.UnknownUnit extends organizationalStructure.Unit { } class organizationalStructure.ResidenceUnit extends organizationalStructure.Unit { } class student.MobilityAgreement extends DomainObject { MobilityProgram mobilityProgram; YearMonthDay startDate; YearMonthDay endDate; } class student.StudentAdditionalInformation extends DomainObject { YearMonthDay startDate; YearMonthDay endDate; MultiLanguageString description; } class teacher.TeacherStatistics extends DomainObject { RegimeType regimeType; Double percentage; TeacherObservation observationType; Boolean isSpecialOrientation; Boolean isSpecialPosition; YearMonthDay startDate; YearMonthDay endDate; } class MacAddress extends DomainObject { String address; Boolean isActive; } class DCPTransitionPlan extends DomainObject { String name; } class DCPTransitionPlanRule extends DomainObject { String ruleType; Boolean normalizeOriginEcts; LogicOperator destinyOperator; Integer ruleOrder; } class DCPTransitionPlanRuleWrapper extends DomainObject { Double creditsEcts; Double creditsWeight; Integer studentCurricularYear; } class OriginDCPTransitionPlanRuleWrapper extends DCPTransitionPlanRuleWrapper { } class DestinyDCPTransitionPlanRuleWrapper extends DCPTransitionPlanRuleWrapper { } /* * removed by pmmsa@iscte.pt *class PersonalPhoto extends FileEntry { *} */ class Signature extends FileEntry { } class curricularRules.TransitedStudentsRule extends curricularRules.Rule { Boolean value; } class curricularRules.StudentsInCurricularYearRule extends curricularRules.Rule { Integer curricularYear; } class curricularRules.CreditsToYearTransition extends curricularRules.Rule { Integer curricularYear; Double credits; } class space.LessonSpaceFeature extends DomainObject { String name; String description; Boolean active; } class VacationPeriod extends DomainObject { String name; YearMonthDay endDate; YearMonthDay startDate; } class FieldOfStudy extends DomainObject { String name (REQUIRED); String code; RegistrationAgreement agreement; } class degreeStructure.CompetenceCourseInformationField extends DomainObject { String name (REQUIRED); String content; Language language; } class student.curriculum.AverageRule extends DomainObject { } class student.curriculum.AverageEctsRule extends student.curriculum.AverageRule { } class student.curriculum.AverageWeightRule extends student.curriculum.AverageRule { } class candidacy.LanguageCourseEnrolment extends DomainObject { LanguageCourseLevelType level (REQUIRED); Boolean payed; Double ects; Double credits; Grade grade; } class candidacy.StudentCandidacyEnrolment extends DomainObject { String createdBy (REQUIRED); Boolean editableByCandidate; } class MobilityCandidacyPreEnrolmentPeriod extends EnrolmentPeriod { Boolean blockStudentCandidacyEnrolments; } class candidacy.GrantOwnerCandidacy extends candidacy.Candidacy { } class candidacy.SocialServicesCandidacy extends candidacy.GrantOwnerCandidacy { } class PrinterCard extends Identification { Integer pin; } class jobs.JobFileResult extends .pt.ist.fenixframework.plugins.fileSupport.domain.GenericFile { Integer size; } class jobs.JobFileInput extends .pt.ist.fenixframework.plugins.fileSupport.domain.GenericFile { } class person.LanguageSkill extends DomainObject { Language language; Integer readingSkill; Integer writingSkill; Integer speechSkill; } class candidacy.CandidacyQuestion extends DomainObject { CandidacyQuestionType type; Boolean answer; String detailedAnswer; } class Photograph extends DomainObject { ContentType contentType; PhotoType photoType; PhotoState state; DateTime submission; DateTime stateChange; String reasonForRejection; } class PhotographContent extends DomainObject { PhotographContentSize size; ByteArray content; } class candidate.CandidateLoginRequest extends DomainObject { String candidateEmail; String hash; } class candidate.CandidateRegistrationEmailTemplates extends DomainObject { String emailBodyWithLinkForRegistration; String emailSubjectWithLinkForRegistration; String emailBodyWithLoginInformation; String emailSubjectWithLoginInformation; String emailBodyWithLoginInformationAfterMerge; String emailSubjectWithLoginInformationAfterMerge; String emailBodyWithPaymentCodes; String emailSubjectWithPaymentCodes; String emailBodyPaypalSubmition; String emailSubjectPaypalSubmition; String emailBodyPaymentReceived; String emailSubjectPaymentReceived; } class candidate.CandidacySchoolEmailTemplates extends DomainObject { String emailBodyCandidacyStateHasChangeToAdmitted; String emailSubjectCandidacyStateHasChangeToAdmitted; String emailBodyCandidacyStateHasChangeToNotAdmitted; String emailSubjectCandidacyStateHasChangeToNotAdmitted; String emailBodyCandidacyStateHasChangeToExcluded; String emailSubjectCandidacyStateHasChangeToExcluded; String emailBodyCandidacyStateHasChangeToSubstitute; String emailSubjectCandidacyStateHasChangeToSubstitute; String emailBodyCandidacyStateHasChangeToConditionalAdmitted; String emailSubjectCandidacyStateHasChangeToConditionalAdmitted; String emailBodyTuitionPayed; String emailSubjectTuitionPayed; } class candidate.SelectionReport extends BaseFile { } class ShiftCapacity extends DomainObject { Integer capacity; ShiftCapacityType capacityType (REQUIRED); } class softwareLicenseManagement.SoftwareApplication extends DomainObject { String name; String vendor; String vendorEmail; } class softwareLicenseManagement.SoftwareVersion extends DomainObject { String versionIdentifier; String repositoryUrl; String licenseMessage; String serialNumber; } class softwareLicenseManagement.LicenseModel extends DomainObject { Group availabilityPolicy; } class softwareLicenseManagement.SharedKeyModel extends softwareLicenseManagement.LicenseModel { } class softwareLicenseManagement.PersonalKeyModel extends softwareLicenseManagement.LicenseModel { } class softwareLicenseManagement.SPSSKeyModel extends softwareLicenseManagement.PersonalKeyModel { String keyRequestEmailTemplate; } class softwareLicenseManagement.LicenseKey extends DomainObject { String keyValue; } class softwareLicenseManagement.SharedKey extends softwareLicenseManagement.LicenseKey { } class softwareLicenseManagement.PersonalKey extends softwareLicenseManagement.LicenseKey { } class softwareLicenseManagement.LicenseRequest extends DomainObject { String installCode; LocalDate begin; LocalDate end; Boolean active; } class administrativeOffice.SefAuthorization extends DomainObject { String errorMessage; String reply; int result; DateTime validationDate; } class administrativeOffice.SefAuthorizationHistory extends DomainObject { String errorMessage; String reply; int result; DateTime validationDate; } class integration.koha.KohaRecord extends DomainObject { // AdditionalDataDTO String categoryCode; String degreeCode; String degreeName; Integer employeeNumber; String expirationDate; String libraryCardNumber; Integer studentNumber; String workingUnit; // AddressDataDTO String address; String areaCode; String areaOfAreaCode; String countryOfResidence; // ContactsDataDTO String institutionalEmailAddress; String mobileNumber; String personalEmailAddress; String phoneNumber; // IdentificationDataDTO String documentIdentificationNumber; String documentIdentificationType; String username; // PersonalDataDTO String name; String gender; String birthDate; // Needed because the UPDATE_ENTITY_DATE cannot be trusted DateTime lastChangeDate; } class integration.koha.KohaRecordHistory extends DomainObject { // AdditionalDataDTO String categoryCode; String degreeCode; String degreeName; Integer employeeNumber; String expirationDate; String libraryCardNumber; Integer studentNumber; String workingUnit; // AddressDataDTO String address; String areaCode; String areaOfAreaCode; String countryOfResidence; // ContactsDataDTO String institutionalEmailAddress; String mobileNumber; String personalEmailAddress; String phoneNumber; // IdentificationDataDTO String documentIdentificationNumber; String documentIdentificationType; String username; // PersonalDataDTO String name; String gender; String birthDate; // Needed because the UPDATE_ENTITY_DATE cannot be trusted DateTime lastChangeDate; } class candidacy.accounting.CandidacyCostDetail extends DomainObject { Money cost; String paypalCode; } class studentCurriculum.LegacyCurriculumGroup extends studentCurriculum.NoCourseGroupCurriculumGroup { } class ExamsPeriod extends DomainObject { } class tuition.TuitionArticle extends DomainObject { String code; String description; BigDecimal value; Integer curricularYear; Boolean manual; TuitionArticleState tuitionArticleState; StudentStatuteType studentStatuteType; } class tuition.DegreeTuitionArticle extends tuition.TuitionArticle { DegreeTuitionArticleType degreeTuitionArticleType; } class tuition.FeeTuitionArticle extends tuition.TuitionArticle { FeeTuitionArticleType feeTuitionArticleType; } class tuition.CurricularCourseTuitionArticle extends tuition.TuitionArticle { Double ectsCredits; Double factor; } class tuition.QuitTuitionArticle extends tuition.TuitionArticle { Double payPercentage; } class tuition.ThesisTuitionArticle extends tuition.TuitionArticle { } class tuition.TuitionVersion extends DomainObject { TuitionVersionType type; TuitionVersionState state; DateTime confirmatedDate; } class tuition.TuitionVersionDetail extends DomainObject { String code; String description; Double ectsCredits; } class candidacy.CandidateBranchSelection extends DomainObject { Integer selectionOrder; } class tuition.TuitionPaymentPlan extends DomainObject { Boolean active; Boolean fulfilling; String detail; } class student.OverrideOnDebt extends DomainObject { String reasonForOverride; } class integration.gapps.GoogleAccount extends DomainObject { Boolean created; Boolean activated; DateTime activationDate; Boolean gmailBlocked; Boolean toSync; } class resource.access.UserIdentificationCard extends Identification { DateTime lastSyncronization; YearMonthDay lastValidDay; } class resource.access.UserCard extends DomainObject { UserCardType type; BigDecimal cardId; DateTime cardCreationDate; } class resource.access.CardReader extends DomainObject { String identification; CardReaderType type; Boolean active; } /* * * Relations * */ relation RootDomainObjectAverageRule { RootDomainObject playsRole rootDomainObject; student.curriculum.AverageRule playsRole averageRules { multiplicity *; } } relation ExecutionYearAverageRule { ExecutionYear playsRole executionYear; student.curriculum.AverageRule playsRole averageRules { multiplicity *; } } relation DegreeCurricularPlanAverageRule { DegreeCurricularPlan playsRole degreeCurricularPlan; student.curriculum.AverageRule playsRole averageRules { multiplicity *; } } relation ServiceEntryLoginAlias { LoginAlias playsRole loginAlias; externalServices.ServiceEntry playsRole serviceEntries { multiplicity *; } } relation ServiceServiceEntry { externalServices.Service playsRole service; externalServices.ServiceEntry playsRole serviceEntries { multiplicity *; } } relation ServiceStateServiceEntry { externalServices.ServiceState playsRole serviceState; externalServices.ServiceEntry playsRole serviceEntries { multiplicity *; } } relation RootDomainObjectServiceEntry { RootDomainObject playsRole rootDomainObject; externalServices.ServiceEntry playsRole serviceEntries { multiplicity *; } } relation RootDomainObjectService { RootDomainObject playsRole rootDomainObject; externalServices.Service playsRole services { multiplicity *; } } relation RootDomainObjectServiceState { RootDomainObject playsRole rootDomainObject; externalServices.ServiceState playsRole serviceStates { multiplicity *; } } relation RootDomainObjectSynchronizationSchedule { RootDomainObject playsRole rootDomainObject; externalServices.SynchronizationSchedule playsRole synchronizationSchedules { multiplicity *; } } relation RootDomainObjectActiveDirectoryGroup { RootDomainObject playsRole rootDomainObject; externalServices.ActiveDirectoryGroup playsRole activeDirectoryGroups { multiplicity *; } } relation ServiceEntryActiveDirectoryGroup { externalServices.ServiceEntry playsRole serviceEntries { multiplicity *; } externalServices.ActiveDirectoryGroup playsRole activeDirectoryGroups { multiplicity *; } } relation DgesFileDgesFileEntry { candidacy.degree.DgesFile playsRole dgesFile; candidacy.degree.DgesFileEntry playsRole dgesFileEntries { multiplicity *; } } relation RootDomainObjectDgesFile { RootDomainObject playsRole rootDomainObject; candidacy.degree.DgesFile playsRole dgesFiles { multiplicity *; } } relation RootDomainObjectDgesFileEntry { RootDomainObject playsRole rootDomainObject; candidacy.degree.DgesFileEntry playsRole dgesFileEntries { multiplicity *; } } relation M23FileM23FileEntry { candidacy.degree.M23File playsRole m23File; candidacy.degree.M23FileEntry playsRole m23FileEntries { multiplicity *; } } relation RootDomainObjectM23File { RootDomainObject playsRole rootDomainObject; candidacy.degree.M23File playsRole m23Files { multiplicity *; } } relation RootDomainObjectM23FileEntry { RootDomainObject playsRole rootDomainObject; candidacy.degree.M23FileEntry playsRole m23FileEntries { multiplicity *; } } relation RootDomainObjectKnownGivenName { RootDomainObject playsRole rootDomainObject; KnownGivenName playsRole knownGivenNames { multiplicity *; } } /* relation RootDomainObjectPrintedPresenceSheet { RootDomainObject playsRole rootDomainObject; PrintedPresenceSheet playsRole printedPresenceSheets { multiplicity *; } } relation PrintedPresenceSheetTeacher { PrintedPresenceSheet playsRole printedPresenceSheets { multiplicity *; } Teacher playsRole teacher; } relation PrintedPresenceSheetExecutionCourseInPrintedPresenceSheet { PrintedPresenceSheet playsRole presenceSheet; ExecutionCourseInPrintedPresenceSheet playsRole printedExecutionCourses { multiplicity *; } } relation ExecutionCourseExecutionCourseInPrintedPresenceSheet { ExecutionCourse playsRole executionCourse; ExecutionCourseInPrintedPresenceSheet playsRole executionCoursesInPrintedPresenceSheets { multiplicity *; } } relation PrintedPresenceSheetPresenceSheet { PrintedPresenceSheet playsRole printedPresenceSheet; PresenceSheet playsRole presenceSheet { multiplicity *; } } relation PresenceSheetMarkedExecutionCourse { PresenceSheet playsRole presenceSheetsMarkedIn { multiplicity *; } ExecutionCourse playsRole markedExecutionCourse; } relation PresenceSheetCorrectedExecutionCourse { PresenceSheet playsRole presenceSheets { multiplicity *; } ExecutionCourse playsRole correctedExecutionCourse; } relation PresenceSheetPossibleLesson { PresenceSheet playsRole presenceSheetsPossible { multiplicity *; } Lesson playsRole possibleLesson; } relation PresenceSheetCorrectedPossibleLesson { PresenceSheet playsRole presenceSheets { multiplicity *; } Lesson playsRole correctedPossibleLesson; } */ relation TeacherMarkRevisionRequest { Teacher playsRole teacher; student.MarkRevisionRequest playsRole markRevisionRequests { multiplicity *; } } relation EnrollmentEvaluationMarkRevisionRequest { EnrolmentEvaluation playsRole enrollmentEvaluation; student.MarkRevisionRequest playsRole markRevisionRequests { multiplicity *; } } relation RootDomainObjectDataRowTest { .com.linkare.mappings.test.DataRowTest playsRole dataRowTests { multiplicity *; } RootDomainObject playsRole rootDomainObject; } relation RootDomainObjectMarkRevisionRequest { RootDomainObject playsRole rootDomainObject; student.MarkRevisionRequest playsRole markRevisionRequests { multiplicity *; } } relation LoginPassword{ Login playsRole login; Password playsRole passwords { multiplicity *; } } relation RootDomainObjectLegalRegimenType { RootDomainObject playsRole rootDomainObject; teacher.LegalRegimenType playsRole legalRegimenTypes { multiplicity *; } } relation InquiriesDemographicalAndAcademicalExecutionDegree { inquiries.InquiriesDemographicalAndAcademical playsRole associatedInquiriesDemographicalAndAcademical { multiplicity *; } ExecutionDegree playsRole executionDegree; } relation InquiriesDemographicalAndAcademicalRegistration { inquiries.InquiriesDemographicalAndAcademical playsRole associatedInquiriesDemographicalAndAcademical { multiplicity *; } student.Registration playsRole registration; } relation InquiriesDemographicalAndAcademicalExecutionPeriod { inquiries.InquiriesDemographicalAndAcademical playsRole associatedInquiriesDemographicalAndAcademical { multiplicity *; } ExecutionPeriod playsRole executionPeriod; } relation InquiriesDemographicalAndAcademicalSchoolClass { inquiries.InquiriesDemographicalAndAcademical playsRole associatedInquiriesDemographicalAndAcademical { multiplicity *; } SchoolClass playsRole studentSchoolClass; } relation InquiriesDemographicalAndAcademicalInquiriesCourse { inquiries.InquiriesCourse playsRole associatedInquiriesCourses { multiplicity *; } inquiries.InquiriesDemographicalAndAcademical playsRole inquiriesDemographicalAndAcademical; } relation RootDomainObjectInquiriesDemographicalAndAcademical { RootDomainObject playsRole rootDomainObject; inquiries.InquiriesDemographicalAndAcademical playsRole inquiriesDemographicalAndAcademical { multiplicity *; } } relation RegistrationSchoolClass { student.Registration playsRole registrations { multiplicity *; } SchoolClass playsRole schoolClasses { multiplicity *; } } relation StudentCandidacySchoolClass { candidacy.StudentCandidacy playsRole studentCandidacies { multiplicity *; } SchoolClass playsRole schoolClass; } relation InquiriesCourseExecutionDegree { inquiries.InquiriesCourse playsRole associatedInquiriesCourses { multiplicity *; } ExecutionDegree playsRole executionDegree; } relation ExecutionDegreeExecutionDegreeExternalInformation { ExecutionDegree playsRole executionDegree; ExecutionDegreeExternalInformation playsRole executionDegreeExternalInformations { multiplicity *; } } relation RootDomainObjectExecutionDegreeExternalInformation { RootDomainObject playsRole rootDomainObject; ExecutionDegreeExternalInformation playsRole executionDegreeExternalInformations { multiplicity *; } } // used for migration purposes relation CurriculumLineCurricularPeriod { studentCurriculum.CurriculumLine playsRole curriculumLines { multiplicity *; } curricularPeriod.CurricularPeriod playsRole curricularPeriod; } relation CertificationExecutionYear { ExecutionYear playsRole executionYear; studentCurriculum.Certification playsRole certifications { multiplicity *; } } relation CertificationEnrolmentWrapper { studentCurriculum.Certification playsRole certification; studentCurriculum.EnrolmentWrapper playsRole enrolmentWrappers { multiplicity *; } } relation StudentCurricularPlanCertification { StudentCurricularPlan playsRole studentCurricularPlan; studentCurriculum.Certification playsRole certifications { multiplicity *; } } relation RootDomainObjectCertification { RootDomainObject playsRole rootDomainObject; studentCurriculum.Certification playsRole certification { multiplicity *; } } relation ISCTEDismissalWrapperDismissal { // For now make use of the field that exists in the database table studentCurriculum.Dismissal playsRole enrolment; studentCurriculum.ISCTEDismissalWrapper playsRole dismissalWrappers { multiplicity *; } } relation PasswordRecoverRequestUser { User playsRole user; PasswordRecoverRequest playsRole passwordRecoverRequest; } relation RootDomainObjectPasswordRecoverRequest { RootDomainObject playsRole rootDomainObject; PasswordRecoverRequest playsRole passwordRecoverRequests { multiplicity *; } } relation PartyContactValidationRequestPartyContact { contacts.PartyContact playsRole partyContact; contacts.PartyContactValidationRequest playsRole partyContactValidationRequest; } relation RootDomainObjectPartyContactValidationRequest { RootDomainObject playsRole rootDomainObject; contacts.PartyContactValidationRequest playsRole partyContactValidationRequests { multiplicity *; } } relation RegistrationDataByExecutionYearCurricularYear { student.RegistrationDataByExecutionYear playsRole registrationDataByExecutionYear { multiplicity *; } CurricularYear playsRole curricularYear; } relation AccountActivationUser { User playsRole user; AccountActivation playsRole accountActivation; } relation CollaboratorPerson { Collaborator playsRole collaborator; Person playsRole person; } relation AdvisorPerson { Advisor playsRole advisor; Person playsRole person; } relation GuestPerson { Guest playsRole guest; Person playsRole person; } relation ExternalEditorPerson { ExternalEditor playsRole externalEditor; Person playsRole person; } relation InspectorPerson { Inspector playsRole inspector; Person playsRole person; } relation ResearcherPerson { Researcher playsRole researcher; Person playsRole person; } relation SecurityStaffPerson { SecurityStaff playsRole securityStaff; Person playsRole person; } relation RootDomainObjectCollaborator { RootDomainObject playsRole rootDomainObject; Collaborator playsRole collaborators { multiplicity *; } } relation RootDomainObjectAdvisor { RootDomainObject playsRole rootDomainObject; Advisor playsRole advisors { multiplicity *; } } relation RootDomainObjectGuest { RootDomainObject playsRole rootDomainObject; Guest playsRole guests { multiplicity *; } } relation RootDomainObjectExternalEditor { RootDomainObject playsRole rootDomainObject; ExternalEditor playsRole externalEditors { multiplicity *; } } relation RootDomainObjectInspector { RootDomainObject playsRole rootDomainObject; Inspector playsRole inspectors { multiplicity *; } } relation RootDomainObjectResearcher { RootDomainObject playsRole rootDomainObject; Researcher playsRole researchers { multiplicity *; } } relation RootDomainObjectSecurityStaff { RootDomainObject playsRole rootDomainObject; SecurityStaff playsRole securityStaffs { multiplicity *; } } relation RootDomainObjectStudentIngression { RootDomainObject playsRole rootDomainObject; candidacy.StudentIngression playsRole studentIngressions { multiplicity *; } } relation RegistrationStudentIngression { student.Registration playsRole registration; candidacy.StudentIngression playsRole studentIngressions { multiplicity *; } } relation ExecutionYearStudentIngression { ExecutionYear playsRole executionYear; candidacy.StudentIngression playsRole studentIngressions { multiplicity *; } } relation StudentCandidacyStudentIngression { candidacy.StudentCandidacy playsRole studentCandidacy; candidacy.StudentIngression playsRole studentIngressions { multiplicity *; } } relation GradeBookGradeBookVolume { gradeBook.GradeBook playsRole gradeBook; gradeBook.GradeBookVolume playsRole gradeBookVolumes { multiplicity *; } } relation GradeBookVolumeGradeBookSheet { gradeBook.GradeBookVolume playsRole gradeBookVolume; gradeBook.GradeBookSheet playsRole gradeBookSheets { multiplicity *; } } relation GradeBookSheetEnrolmentEvaluation { gradeBook.GradeBookSheet playsRole gradeBookSheet; EnrolmentEvaluation playsRole enrolmentEvaluations { multiplicity *; } } relation RootDomainObjectGradeBook { RootDomainObject playsRole rootDomainObject; gradeBook.GradeBook playsRole gradeBooks { multiplicity *; } } relation RootDomainObjectGradeBookVolume { RootDomainObject playsRole rootDomainObject; gradeBook.GradeBookVolume playsRole gradeBookVolumes { multiplicity *; } } relation RootDomainObjectGradeBookSheet { RootDomainObject playsRole rootDomainObject; gradeBook.GradeBookSheet playsRole gradeBookSheets { multiplicity *; } } relation DegreeDataByExecutionYearDegree { Degree playsRole degree; DegreeDataByExecutionYear playsRole degreeDataByExecutionYear { multiplicity *; } } relation DegreeDataByExecutionYearExecutionYear { ExecutionYear playsRole executionYear; DegreeDataByExecutionYear playsRole degreeDataByExecutionYear { multiplicity *; } } relation RootDomainObjectCycleCourseGroupInfo { RootDomainObject playsRole rootDomainObject; degreeStructure.CycleCourseGroupInfo playsRole cycleCourseGroupInfos { multiplicity *; } } relation CycleCourseGroupInfoCycleCourseGroup { degreeStructure.CycleCourseGroup playsRole cycleCourseGroup; degreeStructure.CycleCourseGroupInfo playsRole cycleCourseGroupInfos { multiplicity *; } } relation RootDomainObjectDeletedObject { RootDomainObject playsRole rootDomainObject; DeletedObject playsRole deletedObjects { multiplicity *; } } /* * Future teacher relations (added by pramc) */ relation FutureTeacherProfessorship { FutureTeacher playsRole futureTeacher; Professorship playsRole professorships { multiplicity *; } } relation FutureTeacherTeacher { FutureTeacher playsRole futureTeacher; Teacher playsRole teacher; } relation FutureTeacherDepartment { FutureTeacher playsRole futureTeachers { multiplicity *; } Department playsRole department; } relation RootDomainObjectFutureTeacher { RootDomainObject playsRole rootDomainObject; FutureTeacher playsRole futureTeachers { multiplicity *; } } relation OrientationExecutionDegree { ExecutionDegree playsRole executionDegree; teacher.Orientation playsRole associatedOrientations { multiplicity *; } } relation OrientationStudent { teacher.Orientation playsRole associatedOrientations { multiplicity *; } student.Student playsRole student; } relation CategoryRebides{ teacher.Category playsRole category; teacher.Rebides playsRole associatedRebides { multiplicity *; } } relation RootDomainObjectRebides { RootDomainObject playsRole rootDomainObject; teacher.Rebides playsRole rebides { multiplicity *; } } /* Creation of a "allmost" generical lock system for parts of the application to some users. This was mainly created to support the inquiries sanctions, but it maybe extended to support other block requests */ //All the path restriction templates relation RootDomainObjectPathRestrictionTemplate { RootDomainObject playsRole rootDomainObject; security.PathRestrictionTemplate playsRole pathRestrictionTemplates { multiplicity *; } } //Each path restriction template is going to be applied multiple times (at least one for each applicable user) relation PathRestrictionTemplatePathRestriction { security.PathRestrictionTemplate playsRole pathRestrictionTemplate; security.PathRestriction playsRole appliedRestrictions { multiplicity *; } } //Each user may have several path restrictions applied to him! relation UserAppliedPathRestrictions { User playsRole user; security.PathRestriction playsRole appliedRestrictions { multiplicity *; } } relation PersonUnit { Person playsRole persons { multiplicity *; } organizationalStructure.Unit playsRole currentWorkingPlace; } relation RegistrationMobilityAgreement { student.MobilityAgreement playsRole mobilityAgreements { multiplicity *; } student.Registration playsRole registration; } relation UnitMobilityAgreement { student.MobilityAgreement playsRole mobilityAgreements { multiplicity *; } organizationalStructure.Unit playsRole institution; } relation RootDomainObjectMobilityAgreement { RootDomainObject playsRole rootDomainObject; student.MobilityAgreement playsRole mobilityAgreements { multiplicity *; } } relation StudentAdditionalInformationStudent { student.Student playsRole student; student.StudentAdditionalInformation playsRole studentAdditionalInformation { multiplicity *; } } relation RootDomainObjectStudentAdditionalInformation { RootDomainObject playsRole rootDomainObject; student.StudentAdditionalInformation playsRole studentAdditionalInformation { multiplicity *; } } relation ProfessorshipSchoolClass { Professorship playsRole associatedProfessorships{ multiplicity *; } SchoolClass playsRole associatedSchoolClasses { multiplicity *; } } relation TeacherStatisticsTeacher { teacher.TeacherStatistics playsRole statistic{ multiplicity *; } Teacher playsRole teacher; } relation RootDomainObjectTeacherStatistics { RootDomainObject playsRole rootDomainObject; teacher.TeacherStatistics playsRole teacherStatistics{ multiplicity *; } } // The fields below are temporay. relation InquiriesRegistry3Person { inquiries.InquiriesRegistry3 playsRole unlockedInquiries3 { multiplicity *; } Person playsRole unlockResponsible; } relation MacAddressPerson { MacAddress playsRole macAddresses { multiplicity *; } Person playsRole person; } relation RootDomainObjectMacAddress { RootDomainObject playsRole rootDomainObject; MacAddress playsRole macAddresses { multiplicity *; } } relation RootDomainObjectAnnulledGradeBookSheet { RootDomainObject playsRole rootDomainObject; gradeBook.AnnulledGradeBookSheet playsRole annulledGradeBookSheet { multiplicity *; } } relation AnnulledGradeBookSheetGradeBookVolume { gradeBook.AnnulledGradeBookSheet playsRole annulledGradeBookSheets { multiplicity *; } gradeBook.GradeBookVolume playsRole gradeBookVolume; } relation AnnulledGradeBookSheetEmployee { gradeBook.AnnulledGradeBookSheet playsRole annulledGradeBookSheets { multiplicity *; } Employee playsRole annulledByEmployee; } relation AnnulledGradeBookSheetCurricularCourse { gradeBook.AnnulledGradeBookSheet playsRole annulledGradeBookSheets { multiplicity *; } CurricularCourse playsRole curricularCourse; } relation AnnulledGradeBookSheetExecutionPeriod { gradeBook.AnnulledGradeBookSheet playsRole annulledGradeBookSheets { multiplicity *; } ExecutionPeriod playsRole executionPeriod; } relation AnnulledGradeBookSheetTeacher { gradeBook.AnnulledGradeBookSheet playsRole annulledGradeBookSheets { multiplicity *; } Teacher playsRole responsibleTeacher; } relation RootDomainObjectAnnulledGradeBookLine { RootDomainObject playsRole rootDomainObject; gradeBook.AnnulledGradeBookLine playsRole annulledGradeBookLines { multiplicity *; } } relation AnnulledGradeBookLinePerson { gradeBook.AnnulledGradeBookLine playsRole annulledGradeBookLines { multiplicity *; } Person playsRole person; } relation AnnulledGradeBookLineAnnulledGradeBookSheet { gradeBook.AnnulledGradeBookLine playsRole annulledGradeBookLines { multiplicity *; } gradeBook.AnnulledGradeBookSheet playsRole annulledGradeBookSheet; } relation DistrictCounty { District playsRole district; County playsRole counties { multiplicity 1..*; } } relation RootDomainObjectCounty { RootDomainObject playsRole rootDomainObject; County playsRole counties { multiplicity *; } } relation CountyParish { County playsRole county; Parish playsRole parishes { multiplicity 1..*; } } relation RootDomainObjectParish { RootDomainObject playsRole rootDomainObject; Parish playsRole parishes { multiplicity *; } } relation ParishAreaCode { Parish playsRole parish; areaCode.AreaCode playsRole areaCodes { multiplicity *; } } relation RootDomainObjectAreaCode { RootDomainObject playsRole rootDomainObject; areaCode.AreaCode playsRole areaCodes { multiplicity *; } } relation DCPTransitionPlanOriginDegreeCurricularPlan { DCPTransitionPlan playsRole originDcpTransitionPlans { multiplicity *; } DegreeCurricularPlan playsRole originDcp; } relation DCPTransitionPlanDestinyDegreeCurricularPlan { DCPTransitionPlan playsRole destinyDcpTransitionPlans { multiplicity *; } DegreeCurricularPlan playsRole destinyDcp; } relation DCPTransitionPlanDCPTransitionPlanRule { DCPTransitionPlan playsRole dcpTransitionPlan; DCPTransitionPlanRule playsRole dcpTransitionPlanRules { multiplicity *; } } relation DCPTransitionPlanRuleOriginDCPTransitionPlanRuleWrapper { DCPTransitionPlanRule playsRole dcpTransitionPlanRule; OriginDCPTransitionPlanRuleWrapper playsRole originDcpTransitionPlanRuleWrappers { multiplicity *; } } relation DCPTransitionPlanRuleDestinyDCPTransitionPlanRuleWrapper { DCPTransitionPlanRule playsRole dcpTransitionPlanRule; DestinyDCPTransitionPlanRuleWrapper playsRole destinyDcpTransitionPlanRuleWrappers { multiplicity *; } } relation DCPTransitionPlanRuleWrapperContext { degreeStructure.Context playsRole context; DCPTransitionPlanRuleWrapper playsRole dcpTransitionPlanRuleWrappers { multiplicity *; } } relation RootDomainObjectDCPTransitionPlan { RootDomainObject playsRole rootDomainObject; DCPTransitionPlan playsRole dcpTransitionPlans { multiplicity *; } } relation DCPTransitionPlanExecutionYear { ExecutionYear playsRole executionYear; DCPTransitionPlan playsRole dcpTransitionPlans { multiplicity *; } } relation RootDomainObjectDCPTransitionPlanRule { RootDomainObject playsRole rootDomainObject; DCPTransitionPlanRule playsRole dcpTransitionPlanRules { multiplicity *; } } relation RootDomainObjectDCPTransitionPlanRuleWrapper { RootDomainObject playsRole rootDomainObject; DCPTransitionPlanRuleWrapper playsRole dcpTransitionPlanRuleWrappers { multiplicity *; } } relation AnnulledGradeBookSheetGradeBookSheet { gradeBook.GradeBookSheet playsRole gradeBookSheet; gradeBook.AnnulledGradeBookSheet playsRole annulledGradeBookSheets { multiplicity *; } } /* * removed by pmmsa@iscte.pt * * relation PersonalPhotoPerson { * PersonalPhoto playsRole personalPhoto; * Person playsRole person; *} */ relation SignaturePerson { Signature playsRole signature; Person playsRole person; } relation AnyCurricularCourseScientificAreaUnit { curricularRules.AnyCurricularCourse playsRole associatedAnyCurricularCourseRules { multiplicity *; } organizationalStructure.ScientificAreaUnit playsRole scientificAreaUnits { multiplicity *; } } relation AnyCurricularCourseCompetenceCourse { curricularRules.AnyCurricularCourse playsRole associatedAnyCurricularCourseRules { multiplicity *; } CompetenceCourse playsRole competenceCourses { multiplicity *; } } relation RootDomainObjectLessonSpaceFeature { RootDomainObject playsRole rootDomainObject; space.LessonSpaceFeature playsRole lessonSpaceFeatures { multiplicity *; } } relation LessonSpaceFeatureLessonInstance { space.LessonSpaceFeature playsRole lessonSpaceFeature; LessonInstance playsRole lessonInstances { multiplicity *; } } relation VacationPeriodNextPeriod { VacationPeriod playsRole previousPeriod; VacationPeriod playsRole nextPeriod; } relation RootDomainObjectVacationPeriod { RootDomainObject playsRole rootDomainObject; VacationPeriod playsRole vacationPeriods { multiplicity *; } } relation ExecutionDegreeVacationPeriod { ExecutionDegree playsRole executionDegrees { multiplicity *; } VacationPeriod playsRole vacationPeriod; } relation ExecutionDegreeAcademicPeriod { ExecutionDegree playsRole editableByDepartmentsExecutionDegrees { multiplicity *; } AcademicPeriod playsRole editableByDepartmentsAcademicPeriods { multiplicity *; } } relation RootDomainObjectFieldOfStudy { RootDomainObject playsRole rootDomainObject; FieldOfStudy playsRole fieldsOfStudy { multiplicity *; } } relation ProtocolFieldOfStudy { FieldOfStudy playsRole fieldOfStudy; protocols.Protocol playsRole partnerProtocols { multiplicity *; } } relation RootDomainObjectCompetenceCourseInformationField { RootDomainObject playsRole rootDomainObject; degreeStructure.CompetenceCourseInformationField playsRole competenceCourseInformationFields { multiplicity *; } } relation CompetenceCourseInformationCompetenceCourseInformationField { degreeStructure.CompetenceCourseInformation playsRole competenceCourseInformation; degreeStructure.CompetenceCourseInformationField playsRole competenceCourseInformationFields { multiplicity *; } } relation MobilityStudentCandidacyExecutionPeriod { ExecutionPeriod playsRole executionPeriod; candidacy.MobilityStudentCandidacy playsRole mobilityStudentCandidacies { multiplicity *; } } relation MobilityStudentCandidacyProtocol { protocols.Protocol playsRole protocol; candidacy.MobilityStudentCandidacy playsRole mobilityStudentCandidacies { multiplicity *; } } relation MobilityStudentCandidacyUniversityUnit { organizationalStructure.UniversityUnit playsRole universityUnit; candidacy.MobilityStudentCandidacy playsRole mobilityStudentCandidacies { multiplicity *; } } relation RootDomainObjectLanguageCourseEnrolment { RootDomainObject playsRole rootDomainObject; candidacy.LanguageCourseEnrolment playsRole languageCourseEnrolments { multiplicity *; } } relation MobilityStudentCandidacyLanguageCourseEnrolment { candidacy.MobilityStudentCandidacy playsRole candidacy; candidacy.LanguageCourseEnrolment playsRole languageCourseEnrolments { multiplicity *; } } relation RootDomainObjectStudentCandidacyEnrolment { RootDomainObject playsRole rootDomainObject; candidacy.StudentCandidacyEnrolment playsRole studentCandidacyEnrolments { multiplicity *; } } relation CurriculumGroupStudentCandidacyEnrolment { studentCurriculum.CurriculumGroup playsRole curriculumGroup; candidacy.StudentCandidacyEnrolment playsRole studentCandidacyEnrolments { multiplicity *; } } relation DegreeModuleStudentCandidacyEnrolment { degreeStructure.DegreeModule playsRole degreeModule; candidacy.StudentCandidacyEnrolment playsRole studentCandidacyEnrolments { multiplicity *; } } relation ExecutionPeriodStudentCandidacyEnrolment { ExecutionPeriod playsRole executionPeriod; candidacy.StudentCandidacyEnrolment playsRole studentCandidacyEnrolments { multiplicity *; } } relation StudentCandidacyStudentCandidacyEnrolment { candidacy.StudentCandidacy playsRole studentCandidacy; candidacy.StudentCandidacyEnrolment playsRole studentCandidacyEnrolments { multiplicity *; } } relation RootDomainObjectAccountActivation { RootDomainObject playsRole rootDomainObject; AccountActivation playsRole accountActivations { multiplicity *; } } relation EnrolmentStudentCandidacyEnrolment { Enrolment playsRole finalEnrolment; candidacy.StudentCandidacyEnrolment playsRole studentCandidacyEnrolment; } relation ExecutionYearSocialServicesCandidacy { ExecutionYear playsRole executionYear; candidacy.SocialServicesCandidacy playsRole SocialServicesCandidacy { multiplicity *; } } relation DegreeCurricularPlanToPublishDegree { DegreeCurricularPlan playsRole degreeCurricularPlanToPublish; Degree playsRole publisherDegree; } relation ExecutionYearToPublishDegree { ExecutionYear playsRole executionYearToPublish; Degree playsRole publishedDegrees { multiplicity *; } } class student.RegistrationNote extends DomainObject { String note; Boolean isVisibleToStudent; } relation RegistrationNoteExecutionYear { student.RegistrationNote playsRole registrationNotes { multiplicity *; } ExecutionYear playsRole executionYear; } relation RegistrationNoteRegistration { student.RegistrationNote playsRole registrationNotes { multiplicity *; } student.Registration playsRole registration; } relation RegistrationNoteRootDomainObject { student.RegistrationNote playsRole registrationNotes { multiplicity *; } RootDomainObject playsRole rootDomainObject; } relation CandidateLoginRequestRootDomainObject { candidate.CandidateLoginRequest playsRole candidateLoginRequests { multiplicity *; } RootDomainObject playsRole RootDomainObject; } relation CandidateRegistrationEmailTemplatesRootDomainObject { candidate.CandidateRegistrationEmailTemplates playsRole candidateRegistrationEmailTemplates { multiplicity *; } RootDomainObject playsRole RootDomainObject; } relation LanguageSkillRootDomainObject { person.LanguageSkill playsRole languageSkills { multiplicity *; } RootDomainObject playsRole rootDomainObject; } relation LanguageSkillPerson { person.LanguageSkill playsRole languageSkills { multiplicity *; } Person playsRole person; } relation CandidacyQuestionRootDomainObject { candidacy.CandidacyQuestion playsRole candidacyQuestions { multiplicity *; } RootDomainObject playsRole rootDomainObject; } relation CandidacyQuestionCandidacy { candidacy.CandidacyQuestion playsRole candidacyQuestions { multiplicity *; } candidacy.Candidacy playsRole candidacy; } relation CareerPerson { teacher.Career playsRole associatedCareers { multiplicity *; } Person playsRole person; } relation ProfessionalCareerCountry { teacher.ProfessionalCareer playsRole associatedCareers { multiplicity *; } Country playsRole country; } relation RootDomainObjectPhotograph { RootDomainObject playsRole rootDomainObject; Photograph playsRole photograph { multiplicity *; } } relation RootDomainObjectPhotographContent { RootDomainObject playsRole rootDomainObject; PhotographContent playsRole photographContent { multiplicity *; } } relation PersonPhoto { Photograph playsRole personalPhotograph; Person playsRole person; } relation PhotoRejector { Photograph playsRole rejectedPhoto { multiplicity *; } Person playsRole rejector; } relation PhotoApprover { Photograph playsRole approvedPhoto { multiplicity *; } Person playsRole approver; } relation PreviousPhotograph { Photograph playsRole previous; Photograph playsRole next; } relation PhotographContent { Photograph playsRole photograph; PhotographContent playsRole content { multiplicity *; } } relation RootDomainObjectPendingPhotographs { RootDomainObject playsRole pendingHolder; Photograph playsRole pendingPhotographs { multiplicity *; } } relation RootDomainObjectCandidacyProperties { RootDomainObject playsRole rootDomainObject; candidacy.CandidacyProperties playsRole candidacyProperties { multiplicity *; } } relation DegreeCurricularPlanCandidacyProperties { DegreeCurricularPlan playsRole degreeCurricularPlan; candidacy.CandidacyProperties playsRole candidacyProperties { multiplicity *; } } relation ExecutionYearCandidacProperties { ExecutionYear playsRole executionYear; candidacy.CandidacyProperties playsRole candidacyProperties { multiplicity *; } } relation RootDomainObjectShiftCapacity { RootDomainObject playsRole rootDomainObject; ShiftCapacity playsRole shiftCapacities { multiplicity *; } } relation ShiftCapacityShift { Shift playsRole shift { multiplicity 1..1; } ShiftCapacity playsRole shiftCapacities { multiplicity *; } } relation ShiftCapacityShiftEnrolment { ShiftEnrolment playsRole shiftEnrolments { multiplicity *; } ShiftCapacity playsRole shiftCapacity; } relation ApplicationVersion { softwareLicenseManagement.SoftwareApplication playsRole application; softwareLicenseManagement.SoftwareVersion playsRole versions { multiplicity *; } } relation SoftwareVersionLicenseModel { softwareLicenseManagement.SoftwareVersion playsRole version; softwareLicenseManagement.LicenseModel playsRole licenseModel; } relation SoftwareVersionLicenseRequest { softwareLicenseManagement.SoftwareVersion playsRole requestedVersion; softwareLicenseManagement.LicenseRequest playsRole licenseRequests { multiplicity *; } } relation LicenseRequestParty { softwareLicenseManagement.LicenseRequest playsRole licenseRequests { multiplicity *; } Person playsRole requestor; } relation KeyForSharedKeyModel { softwareLicenseManagement.SharedKeyModel playsRole sharedKeyModel; softwareLicenseManagement.SharedKey playsRole sharedKey; } relation KeysForPersonalKeyModel { softwareLicenseManagement.PersonalKeyModel playsRole personalKeyModel; softwareLicenseManagement.PersonalKey playsRole personalKeys { multiplicity *; } } relation GrantedKey { softwareLicenseManagement.LicenseKey playsRole grantedKey; softwareLicenseManagement.LicenseRequest playsRole licenseRequests { multiplicity *; } } relation RootDomainObjectSoftwareApplication { RootDomainObject playsRole rootDomainObject; softwareLicenseManagement.SoftwareApplication playsRole softwareApplications { multiplicity *; } } relation RootDomainObjectSofwareVersion { RootDomainObject playsRole rootDomainObject; softwareLicenseManagement.SoftwareVersion playsRole softwareVersions { multiplicity *; } } relation RootDomainObjectLicenseModel { RootDomainObject playsRole rootDomainObject; softwareLicenseManagement.LicenseModel playsRole licenseModels { multiplicity *; } } relation RootDomainObjectLicenseKey { RootDomainObject playsRole rootDomainObject; softwareLicenseManagement.LicenseKey playsRole licenseKeys { multiplicity *; } } relation RootDomainObjectLicenseRequests { RootDomainObject playsRole rootDomainObject; softwareLicenseManagement.LicenseRequest playsRole licenseRequests { multiplicity *; } } relation PersonVisaCountry { Person playsRole associatedVisas { multiplicity *; } Country playsRole visaCountry; } relation ProfessorshipMissedLessonInstances { LessonInstance playsRole missedLessons { multiplicity *; } Professorship playsRole missedProfessorship; } relation RootDomainObjectSefAuthorization { RootDomainObject playsRole rootDomainObject; administrativeOffice.SefAuthorization playsRole sefAuthorizations { multiplicity *; } } relation RootDomainObjectSefAuthorizationHistory { RootDomainObject playsRole rootDomainObject; administrativeOffice.SefAuthorizationHistory playsRole sefAuthorizationHistories { multiplicity *; } } relation PersonSefAuthorization { Person playsRole person; administrativeOffice.SefAuthorization playsRole sefAuthorization; } relation SefAuthorizationSefAuthorizationHistory { administrativeOffice.SefAuthorizationHistory playsRole sefAuthorizationHistory { multiplicity *; } administrativeOffice.SefAuthorization playsRole sefAuthorization; } relation RootDomainObjectKohaRecord { RootDomainObject playsRole rootDomainObject; integration.koha.KohaRecord playsRole kohaRecords { multiplicity *; } } relation RootDomainObjectKohaRecordHistory { RootDomainObject playsRole rootDomainObject; integration.koha.KohaRecordHistory playsRole kohaRecordHistories { multiplicity *; } } relation KohaRecordKohaRecordHistory { integration.koha.KohaRecordHistory playsRole kohaRecordHistory { multiplicity *; } integration.koha.KohaRecord playsRole kohaRecord; } relation CandidacyCostDetailRootDomainObject { RootDomainObject playsRole rootDomainObject; candidacy.accounting.CandidacyCostDetail playsRole candidacyCostDetails { multiplicity *; } } relation CandidacyCostDetailDegreeCurricularPlanCandidacyPeriod { DegreeCurricularPlanCandidacyPeriod playsRole candidacyPeriods { multiplicity *; } candidacy.accounting.CandidacyCostDetail playsRole candidacyCostDetail; } relation PhysicalDeliveryOfficeContactSpace { contacts.PhysicalDeliveryOfficeContact playsRole physicalDeliveryOfficeContacts { multiplicity *; } space.AllocatableSpace playsRole space; } relation CandidacySchoolEmailTemplatesSchoolUnits { candidate.CandidacySchoolEmailTemplates playsRole candidacySchoolEmailTemplates; organizationalStructure.SchoolUnit playsRole schoolUnit; } relation CandidacySchoolEmailTemplatesRootDomainObject { candidate.CandidacySchoolEmailTemplates playsRole candidacySchoolEmailTemplates { multiplicity *; } RootDomainObject playsRole rootDomainObject; } relation RootDomainObjectExamsPeriod { RootDomainObject playsRole rootDomainObject; ExamsPeriod playsRole examsPeriod { multiplicity *; } } relation ExecutionCourseExamsPeriod { ExecutionCourse playsRole executionCourse; ExamsPeriod playsRole examsPeriod; } relation ExamsPeriodOccupationPeriodExamsFirstSemester { ExamsPeriod playsRole examsPeriodForExamsFirstSemester; OccupationPeriod playsRole periodExamsFirstSemester; } relation ExamsPeriodOccupationPeriodGradeSubmissionFirstSemester { ExamsPeriod playsRole examsPeriodForGradeSubmissionkFirstSemester; OccupationPeriod playsRole periodGradeSubmissionFirstSemester; } relation ExamsPeriodOccupationPeriodExamsSecondSemester { ExamsPeriod playsRole examsPeriodForExamsSecondSemester; OccupationPeriod playsRole periodExamsSecondSemester; } relation ExamsPeriodOccupationPeriodGradeSubmissionSecondSemester { ExamsPeriod playsRole examsPeriodForGradeSubmissionSecondSemester; OccupationPeriod playsRole periodGradeSubmissionSecondSemester; } relation ExamsPeriodOccupationPeriodExamsSpecialSeason { ExamsPeriod playsRole examsPeriodForExamsSpecialSeason; OccupationPeriod playsRole periodExamsSpecialSeason; } relation ExamsPeriodOccupationPeriodGradeSubmissionSpecialSeason { ExamsPeriod playsRole examsPeriodForGradeSubmissionSpecialSeason; OccupationPeriod playsRole periodGradeSubmissionSpecialSeason; } relation DegreeCurricularPlanSelectionReport { DegreeCurricularPlan playsRole degreeCurricularPlan; candidate.SelectionReport playsRole selectionReports { multiplicity *; } } relation DegreeCurricularPlanCandidacyPeriodSelectionReport { DegreeCurricularPlanCandidacyPeriod playsRole period; candidate.SelectionReport playsRole selectionReports { multiplicity *; } } relation ISCTECurricularCourseSheetRequestEnrolment { Enrolment playsRole enrolments { multiplicity *; } serviceRequests.documentRequests.ISCTECurricularCourseSheetRequest playsRole ISCTECurricularCourseSheetRequest { multiplicity *; } } relation ExecutionDegreeTuitionArticle { ExecutionDegree playsRole executionDegree; tuition.TuitionArticle playsRole tuitionArticles { multiplicity *; } } relation RootDomainObjectTuitionArticle { RootDomainObject playsRole rootDomainObject; tuition.TuitionArticle playsRole tuitionArticle { multiplicity *; } } relation RegistrationTuitionVersion { student.Registration playsRole registration; tuition.TuitionVersion playsRole tuitionVersions { multiplicity *; } } relation PersonTuitionVersion { Person playsRole person; tuition.TuitionVersion playsRole tuitionVersion { multiplicity *; } } relation RootDomainObjectTuitionVersion { RootDomainObject playsRole rootDomainObject; tuition.TuitionVersion playsRole tuitionVersion { multiplicity *; } } relation TuitionVersionExecutionYear { tuition.TuitionVersion playsRole tuitionVersions { multiplicity *; } ExecutionYear playsRole executionYear; } relation TuitionVersionTuitionVersionDetail { tuition.TuitionVersion playsRole tuitionVersion; tuition.TuitionVersionDetail playsRole tuitionVersionDetails { multiplicity *; } } relation RootDomainObjectTuitionVersionDetail { RootDomainObject playsRole rootDomainObject; tuition.TuitionVersionDetail playsRole tuitionVersionDetail { multiplicity *; } } relation TuitionArticleTuitionVersionDetail { tuition.TuitionArticle playsRole tuitionArticle; tuition.TuitionVersionDetail playsRole tuitionVersionDetails { multiplicity *; } } relation TuitionPaymentPlanStudent { tuition.TuitionPaymentPlan playsRole tuitionPaymentPlan; student.Student playsRole student; } relation RootDomainObjectTuitionPaymentPlan { RootDomainObject playsRole rootDomainObject; tuition.TuitionPaymentPlan playsRole tuitionPaymentPlan { multiplicity *; } } relation CandidateBranchSelectionRootDomainObject { candidacy.CandidateBranchSelection playsRole branchSelections { multiplicity *; } RootDomainObject playsRole rootDomainObject; } relation CandidateBranchSelectionSecondCycleCandidacy { candidacy.CandidateBranchSelection playsRole branchSelections { multiplicity *; } candidacy.SecondCycleCandidacy playsRole candidacy; } relation CandidateBranchSelectionCourseGroup { candidacy.CandidateBranchSelection playsRole branchSelections { multiplicity *; } degreeStructure.CourseGroup playsRole courseGroup; } relation SecondCycleCandidacyContributor { candidacy.SecondCycleCandidacy playsRole candidacy; Contributor playsRole contributor; } relation ContributorCountry { Contributor playsRole contributors { multiplicity *; } Country playsRole country; } relation OverrideOnDebtExecutionYear { student.OverrideOnDebt playsRole overrideOnDebt; ExecutionYear playsRole executionYear; } relation OverrideOnDebtStudent { student.OverrideOnDebt playsRole OverridesOnDebt { multiplicity *; } student.Student playsRole student; } relation OverrideOnDebtRootDomainObject { student.OverrideOnDebt playsRole OverridesOnDebt { multiplicity *; } RootDomainObject playsRole rootDomainObject; } relation UserGoogleAccount { User playsRole user; integration.gapps.GoogleAccount playsRole googleAccount; } relation RootDomainObjectGoogleAccount { RootDomainObject playsRole rootDomainObject; integration.gapps.GoogleAccount playsRole googleAccounts { multiplicity *; } } relation RootDomainObjectUserCard { RootDomainObject playsRole rootDomainObject; resource.access.UserCard playsRole userCards { multiplicity *; } } relation UserCardUserIdentificationCard { resource.access.UserCard playsRole userCard; resource.access.UserIdentificationCard playsRole userIdentificationCards { multiplicity *; } } relation RootDomainObjectCardReader { RootDomainObject playsRole rootDomainObject; resource.access.CardReader playsRole cardReaders { multiplicity *; } } relation ResourceCardReader { resource.Resource playsRole resource; resource.access.CardReader playsRole cardReaders { multiplicity *; } }