Uploaded image for project: 'Ed-Fi Data Standard'
  1. Ed-Fi Data Standard
  2. DATASTD-1159

Introduce abstract base class GeneralStudentProgramAssociation

    XMLWordPrintable

Details

    Description

      Summary of outcomes for Data Standard 3.0

      • Problem Addressed: Prior to v3.0, StudentProgramAssociation acted as a sort of base class, with several related subclasses. Each instance of a subclass also created an instance of StudentProgramAssociation. However, users could write records to StudentProgramAssociation directly without necessarily writing a corresponding subclass record. This created confusion and was not consistent with how other subclassing (EducationOrganization) is handled.
      • High-level Reasoning: By creating a true base class (GeneralStudentProgramAssociation), the subclasses may be handled much more consistently with how EducationOrganiation subclasses are handled. StudentProgramAssociation and all of its former subclasses are now subclasses of GeneralStudentProgramAssociation, such that each instance of a program association subclass creates a GeneralStudentProgramAssociation record and each GeneralStudentProgramAssociation record has a corresponding subclass record.
      • Changes Made: A GeneralStudentProgramAssociation association was created. All StudentProgramAssociation characteristics were moved to the new GeneralStudentProgramAssociation and StudentProgramAssociation became a subclass of GeneralStudentProgramAssociation (with a string "Description" field added). All existing subclasses were changed to be based off of the new GeneralStudentProgramAssociation.

      Original ticket description follows:

      This abstract base class - GeneralStudentProgramAssociation - is designed to solve the issue of having multiple API bindings for sub-classes of StudentProgramAssociation. For example, in the current API, a Title I program association can be referenced from both /studentProgramAssociation and /titleIAStudentProgramAssociation. In field work, this confusion has generated problems: API clients manipulating the base class without realizing it is manipulating the sub-class.

      The proposed design is to:

      • Create abstract entity GeneralStudentProgramAssociation that has the same attributes of the current StudentProgramAssociation
      • Make StudentProgramAssociation inherit from this class GeneralStudentProgramAssociation, with no new attributes
      • Make all current sub-classes of StudentProgramAssociation inherit from GeneralStudentProgramAssociation 

       

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              Eric.Jansson Eric Jansson
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Salesforce