Class BaseHibernateManager

    • Field Detail

      • sectionAwareness

        protected org.sakaiproject.section.api.SectionAwareness sectionAwareness
      • authn

        protected org.sakaiproject.tool.gradebook.facades.Authn authn
      • eventTrackingService

        protected org.sakaiproject.event.api.EventTrackingService eventTrackingService
      • serverConfigurationService

        protected org.sakaiproject.component.api.ServerConfigurationService serverConfigurationService
      • externalAssessmentService

        protected org.sakaiproject.service.gradebook.shared.GradebookExternalAssessmentService externalAssessmentService
    • Constructor Detail

      • BaseHibernateManager

        public BaseHibernateManager()
    • Method Detail

      • getGradebook

        public org.sakaiproject.tool.gradebook.Gradebook getGradebook​(String uid)
                                                               throws org.sakaiproject.service.gradebook.shared.GradebookNotFoundException
        Throws:
        org.sakaiproject.service.gradebook.shared.GradebookNotFoundException
      • isGradebookDefined

        public boolean isGradebookDefined​(String gradebookUid)
      • getAssignments

        protected List<org.sakaiproject.tool.gradebook.GradebookAssignment> getAssignments​(Long gradebookId)
                                                                                    throws org.hibernate.HibernateException
        Throws:
        org.hibernate.HibernateException
      • getCountedStudentGradeRecords

        protected List getCountedStudentGradeRecords​(Long gradebookId,
                                                     String studentId)
                                              throws org.hibernate.HibernateException
        Throws:
        org.hibernate.HibernateException
      • getCourseGrade

        public org.sakaiproject.tool.gradebook.CourseGrade getCourseGrade​(Long gradebookId)
      • getCourseGradeRecord

        protected org.sakaiproject.tool.gradebook.CourseGradeRecord getCourseGradeRecord​(org.sakaiproject.tool.gradebook.Gradebook gradebook,
                                                                                         String studentId)
                                                                                  throws org.hibernate.HibernateException
        Gets the course grade record for a student, or null if it does not yet exist.
        Parameters:
        studentId - The student ID
        Returns:
        A List of grade records
        Throws:
        org.hibernate.HibernateException
      • getGradebookUid

        public String getGradebookUid​(Long id)
      • getAllStudentUids

        protected Set<String> getAllStudentUids​(String gradebookUid)
      • getPropertyValue

        public String getPropertyValue​(String name)
      • setPropertyValue

        public void setPropertyValue​(String name,
                                     String value)
      • filterGradeRecordsByStudents

        protected List filterGradeRecordsByStudents​(Collection gradeRecords,
                                                    Collection studentUids)
        Oracle has a low limit on the maximum length of a parameter list in SQL queries of the form "WHERE tbl.col IN (:paramList)". Since enrollment lists can sometimes be very long, we've replaced such queries with full selects followed by filtering. This helper method filters out unwanted grade records. (Typically they're not wanted because they're either no longer officially enrolled in the course or they're not members of the selected section.)
      • getAssignmentWithoutStats

        @Deprecated
        protected org.sakaiproject.tool.gradebook.GradebookAssignment getAssignmentWithoutStats​(String gradebookUid,
                                                                                                String assignmentName)
                                                                                         throws org.hibernate.HibernateException
        Deprecated.
        Throws:
        org.hibernate.HibernateException
      • getAssignmentWithoutStats

        protected org.sakaiproject.tool.gradebook.GradebookAssignment getAssignmentWithoutStats​(String gradebookUid,
                                                                                                Long assignmentId)
                                                                                         throws org.hibernate.HibernateException
        Throws:
        org.hibernate.HibernateException
      • getAssignmentById

        protected org.sakaiproject.tool.gradebook.GradebookAssignment getAssignmentById​(Long assignmentId)
                                                                                 throws org.hibernate.HibernateException
        Throws:
        org.hibernate.HibernateException
      • updateAssignment

        protected void updateAssignment​(org.sakaiproject.tool.gradebook.GradebookAssignment assignment)
                                 throws org.sakaiproject.service.gradebook.shared.ConflictingAssignmentNameException,
                                        org.hibernate.HibernateException
        Throws:
        org.sakaiproject.service.gradebook.shared.ConflictingAssignmentNameException
        org.hibernate.HibernateException
      • getAssignmentGradeRecord

        protected org.sakaiproject.tool.gradebook.AssignmentGradeRecord getAssignmentGradeRecord​(org.sakaiproject.tool.gradebook.GradebookAssignment assignment,
                                                                                                 String studentUid)
                                                                                          throws org.hibernate.HibernateException
        Throws:
        org.hibernate.HibernateException
      • createAssignment

        public Long createAssignment​(Long gradebookId,
                                     String name,
                                     Double points,
                                     Date dueDate,
                                     Boolean isNotCounted,
                                     Boolean isReleased,
                                     Boolean isExtraCredit,
                                     Integer sortOrder)
                              throws org.sakaiproject.service.gradebook.shared.ConflictingAssignmentNameException,
                                     org.sakaiproject.service.gradebook.shared.StaleObjectModificationException
        Throws:
        org.sakaiproject.service.gradebook.shared.ConflictingAssignmentNameException
        org.sakaiproject.service.gradebook.shared.StaleObjectModificationException
      • createAssignmentForCategory

        public Long createAssignmentForCategory​(Long gradebookId,
                                                Long categoryId,
                                                String name,
                                                Double points,
                                                Date dueDate,
                                                Boolean isNotCounted,
                                                Boolean isReleased,
                                                Boolean isExtraCredit,
                                                Integer categorizedSortOrder)
                                         throws org.sakaiproject.service.gradebook.shared.ConflictingAssignmentNameException,
                                                org.sakaiproject.service.gradebook.shared.StaleObjectModificationException,
                                                IllegalArgumentException
        Throws:
        org.sakaiproject.service.gradebook.shared.ConflictingAssignmentNameException
        org.sakaiproject.service.gradebook.shared.StaleObjectModificationException
        IllegalArgumentException
      • saveNewAssignment

        protected Long saveNewAssignment​(Long gradebookId,
                                         Long categoryId,
                                         org.sakaiproject.tool.gradebook.GradebookAssignment asn)
                                  throws org.sakaiproject.service.gradebook.shared.ConflictingAssignmentNameException
        Throws:
        org.sakaiproject.service.gradebook.shared.ConflictingAssignmentNameException
      • updateGradebook

        public void updateGradebook​(org.sakaiproject.tool.gradebook.Gradebook gradebook)
                             throws org.sakaiproject.service.gradebook.shared.StaleObjectModificationException
        Throws:
        org.sakaiproject.service.gradebook.shared.StaleObjectModificationException
      • isExplicitlyEnteredCourseGradeRecords

        public boolean isExplicitlyEnteredCourseGradeRecords​(Long gradebookId)
      • getAuthn

        public org.sakaiproject.tool.gradebook.facades.Authn getAuthn()
      • setAuthn

        public void setAuthn​(org.sakaiproject.tool.gradebook.facades.Authn authn)
      • getUserUid

        protected String getUserUid()
      • getSectionAwareness

        protected org.sakaiproject.section.api.SectionAwareness getSectionAwareness()
      • setSectionAwareness

        public void setSectionAwareness​(org.sakaiproject.section.api.SectionAwareness sectionAwareness)
      • getServerConfigurationService

        protected org.sakaiproject.component.api.ServerConfigurationService getServerConfigurationService()
      • setServerConfigurationService

        public void setServerConfigurationService​(org.sakaiproject.component.api.ServerConfigurationService serverConfigurationService)
      • getEventTrackingService

        protected org.sakaiproject.event.api.EventTrackingService getEventTrackingService()
      • setEventTrackingService

        public void setEventTrackingService​(org.sakaiproject.event.api.EventTrackingService eventTrackingService)
      • getGradebookExternalAssessmentService

        protected org.sakaiproject.service.gradebook.shared.GradebookExternalAssessmentService getGradebookExternalAssessmentService()
      • setGradebookExternalAssessmentService

        public void setGradebookExternalAssessmentService​(org.sakaiproject.service.gradebook.shared.GradebookExternalAssessmentService externalAssessmentService)
      • postEvent

        public void postEvent​(String event,
                              String objectReference)
      • createCategory

        public Long createCategory​(Long gradebookId,
                                   String name,
                                   Double weight,
                                   Integer drop_lowest,
                                   Integer dropHighest,
                                   Integer keepHighest,
                                   Boolean is_extra_credit,
                                   Boolean is_equal_weight,
                                   Integer categoryOrder)
                            throws org.sakaiproject.service.gradebook.shared.ConflictingCategoryNameException,
                                   org.sakaiproject.service.gradebook.shared.StaleObjectModificationException
        Throws:
        org.sakaiproject.service.gradebook.shared.ConflictingCategoryNameException
        org.sakaiproject.service.gradebook.shared.StaleObjectModificationException
      • getCategories

        public List getCategories​(Long gradebookId)
                           throws org.hibernate.HibernateException
        Throws:
        org.hibernate.HibernateException
      • getCategoriesWithAssignments

        public List getCategoriesWithAssignments​(Long gradebookId)
      • getAssignmentsForCategory

        public List<org.sakaiproject.tool.gradebook.GradebookAssignment> getAssignmentsForCategory​(Long categoryId)
                                                                                            throws org.hibernate.HibernateException
        Throws:
        org.hibernate.HibernateException
      • getCategory

        public org.sakaiproject.tool.gradebook.Category getCategory​(Long categoryId)
                                                             throws org.hibernate.HibernateException
        Throws:
        org.hibernate.HibernateException
      • updateCategory

        public void updateCategory​(org.sakaiproject.tool.gradebook.Category category)
                            throws org.sakaiproject.service.gradebook.shared.ConflictingCategoryNameException,
                                   org.sakaiproject.service.gradebook.shared.StaleObjectModificationException
        Throws:
        org.sakaiproject.service.gradebook.shared.ConflictingCategoryNameException
        org.sakaiproject.service.gradebook.shared.StaleObjectModificationException
      • removeCategory

        public void removeCategory​(Long categoryId)
                            throws org.sakaiproject.service.gradebook.shared.StaleObjectModificationException
        Throws:
        org.sakaiproject.service.gradebook.shared.StaleObjectModificationException
      • getDefaultLetterGradePercentMapping

        public org.sakaiproject.tool.gradebook.LetterGradePercentMapping getDefaultLetterGradePercentMapping()
      • createOrUpdateDefaultLetterGradePercentMapping

        public void createOrUpdateDefaultLetterGradePercentMapping​(Map gradeMap)
      • createDefaultLetterGradePercentMapping

        public void createDefaultLetterGradePercentMapping​(Map<String,​Double> gradeMap)
      • getLetterGradePercentMapping

        public org.sakaiproject.tool.gradebook.LetterGradePercentMapping getLetterGradePercentMapping​(org.sakaiproject.tool.gradebook.Gradebook gradebook)
      • saveOrUpdateLetterGradePercentMapping

        public void saveOrUpdateLetterGradePercentMapping​(Map<String,​Double> gradeMap,
                                                          org.sakaiproject.tool.gradebook.Gradebook gradebook)
      • validateLetterGradeMapping

        protected boolean validateLetterGradeMapping​(Map<String,​Double> gradeMap)
      • createUngradedAssignment

        public Long createUngradedAssignment​(Long gradebookId,
                                             String name,
                                             Date dueDate,
                                             Boolean isNotCounted,
                                             Boolean isReleased)
                                      throws org.sakaiproject.service.gradebook.shared.ConflictingAssignmentNameException,
                                             org.sakaiproject.service.gradebook.shared.StaleObjectModificationException
        Throws:
        org.sakaiproject.service.gradebook.shared.ConflictingAssignmentNameException
        org.sakaiproject.service.gradebook.shared.StaleObjectModificationException
      • createUngradedAssignmentForCategory

        public Long createUngradedAssignmentForCategory​(Long gradebookId,
                                                        Long categoryId,
                                                        String name,
                                                        Date dueDate,
                                                        Boolean isNotCounted,
                                                        Boolean isReleased)
                                                 throws org.sakaiproject.service.gradebook.shared.ConflictingAssignmentNameException,
                                                        org.sakaiproject.service.gradebook.shared.StaleObjectModificationException,
                                                        IllegalArgumentException
        Throws:
        org.sakaiproject.service.gradebook.shared.ConflictingAssignmentNameException
        org.sakaiproject.service.gradebook.shared.StaleObjectModificationException
        IllegalArgumentException
      • isAssignmentDefined

        public boolean isAssignmentDefined​(Long gradableObjectId)
      • getAssignment

        public org.sakaiproject.tool.gradebook.GradebookAssignment getAssignment​(Long gradableObjectId)
        Parameters:
        gradableObjectId -
        Returns:
        the GradebookAssignment object with the given id
      • calculateEquivalentPercent

        protected Double calculateEquivalentPercent​(Double doublePointsPossible,
                                                    Double doublePointsEarned)
        Parameters:
        doublePointsPossible -
        doublePointsEarned -
        Returns:
        the % equivalent for the given points possible and points earned
      • convertPointsToPercentage

        protected List convertPointsToPercentage​(org.sakaiproject.tool.gradebook.Gradebook gradebook,
                                                 List studentRecordsFromDB)
        Converts points to percentage for the given AssignmentGradeRecords
        Parameters:
        gradebook -
        studentRecordsFromDB -
        Returns:
      • convertPointsToLetterGrade

        protected List convertPointsToLetterGrade​(org.sakaiproject.tool.gradebook.Gradebook gradebook,
                                                  List studentRecordsFromDB)
        Converts points to letter grade for the given AssignmentGradeRecords
        Parameters:
        gradebook -
        studentRecordsFromDB -
        Returns:
      • calculateEquivalentPointValueForPercent

        protected Double calculateEquivalentPointValueForPercent​(Double doublePointsPossible,
                                                                 Double doublePercentEarned)
      • getComments

        public List<org.sakaiproject.tool.gradebook.Comment> getComments​(org.sakaiproject.tool.gradebook.GradebookAssignment assignment,
                                                                         Collection studentIds)
      • getVisibleExternalAssignments

        protected Map<String,​Set<org.sakaiproject.tool.gradebook.GradebookAssignment>> getVisibleExternalAssignments​(org.sakaiproject.tool.gradebook.Gradebook gradebook,
                                                                                                                           Collection<String> studentIds,
                                                                                                                           List<org.sakaiproject.tool.gradebook.GradebookAssignment> assignments)
      • studentCanView

        protected boolean studentCanView​(String studentId,
                                         org.sakaiproject.tool.gradebook.GradebookAssignment assignment)
      • finalizeNullGradeRecords

        protected void finalizeNullGradeRecords​(org.sakaiproject.tool.gradebook.Gradebook gradebook)
      • assignmentNameExists

        protected boolean assignmentNameExists​(String name,
                                               org.sakaiproject.tool.gradebook.Gradebook gradebook)
        Parameters:
        name - the assignment name (will not be trimmed)
        gradebook - the gradebook to check
        Returns:
        true if an assignment with the given name already exists in this gradebook.
      • getAssignmentScoreComment

        public org.sakaiproject.service.gradebook.shared.CommentDefinition getAssignmentScoreComment​(String gradebookUid,
                                                                                                     Long assignmentId,
                                                                                                     String studentUid)
                                                                                              throws org.sakaiproject.service.gradebook.shared.GradebookNotFoundException,
                                                                                                     org.sakaiproject.service.gradebook.shared.AssessmentNotFoundException
        Throws:
        org.sakaiproject.service.gradebook.shared.GradebookNotFoundException
        org.sakaiproject.service.gradebook.shared.AssessmentNotFoundException
      • setAssignmentScoreComment

        public void setAssignmentScoreComment​(String gradebookUid,
                                              Long assignmentId,
                                              String studentUid,
                                              String commentText)
                                       throws org.sakaiproject.service.gradebook.shared.GradebookNotFoundException,
                                              org.sakaiproject.service.gradebook.shared.AssessmentNotFoundException
        Throws:
        org.sakaiproject.service.gradebook.shared.GradebookNotFoundException
        org.sakaiproject.service.gradebook.shared.AssessmentNotFoundException
      • getIsAssignmentExcused

        public boolean getIsAssignmentExcused​(String gradebookUid,
                                              Long assignmentId,
                                              String studentUid)
                                       throws org.sakaiproject.service.gradebook.shared.GradebookNotFoundException,
                                              org.sakaiproject.service.gradebook.shared.AssessmentNotFoundException
        Throws:
        org.sakaiproject.service.gradebook.shared.GradebookNotFoundException
        org.sakaiproject.service.gradebook.shared.AssessmentNotFoundException
      • updateGradeMapping

        public void updateGradeMapping​(Long gradeMappingId,
                                       Map<String,​Double> gradeMap)
      • getCourseGradeOverrides

        protected List<org.sakaiproject.tool.gradebook.CourseGradeRecord> getCourseGradeOverrides​(org.sakaiproject.tool.gradebook.Gradebook gradebook)
                                                                                           throws org.hibernate.HibernateException
        Get's all course grade overrides for a given gradebook
        Parameters:
        gradebook - The gradebook
        Returns:
        A list of CourseGradeRecord that have overrides
        Throws:
        org.hibernate.HibernateException