All Implemented Interfaces:
PackageManifest, Serializable

public class Scorm2004Metadata extends BaseModuleMetadata<Scorm2004Manifest>
Represents metadata for SCORM 2004 eLearning modules, including SCORM 2004-specific fields such as sequencing information, mastery score, custom data, prerequisites, and additional metadata from external manifests.

This class extends the base BaseModuleMetadata class to provide metadata that describes the structure and rules that are specific to SCORM 2004 modules.

See Also:
  • Constructor Details

    • Scorm2004Metadata

      protected Scorm2004Metadata()
      Constructs an instance of the Scorm2004Metadata class. This constructor initializes the Scorm2004Metadata object by invoking the superclass's constructor and preparing it for further operations.

      This class is likely associated with handling metadata specific to the SCORM 2004 standard, a set of technical standards for eLearning.

  • Method Details

    • create

      public static Scorm2004Metadata create(Scorm2004Manifest manifest, boolean xapiEnabled)
      Creates a new Scorm2004Metadata instance with standard SCORM 2004 metadata components.
      Parameters:
      manifest - The SCORM 2004 manifest.
      xapiEnabled - Whether xAPI is enabled.
      Returns:
      A new Scorm2004Metadata instance.
    • hasSequencing

      public static boolean hasSequencing(Scorm2004Manifest manifest)
      Determines if a SCORM 2004 manifest has sequencing information.

      This method checks if any item in any organization has sequencing rules defined. Sequencing is considered present if any item has a non-null sequencing element.

      Parameters:
      manifest - The SCORM 2004 manifest to check.
      Returns:
      true if the manifest contains sequencing information, false otherwise.
    • getDeliveryControlOverrides

      public Set<String> getDeliveryControlOverrides()
      Retrieves the set of delivery control overrides. These overrides specify the activities or conditions for which delivery control defaults are not applicable and are customized or explicitly defined.
      Returns:
      A set of delivery control overrides.
    • getGlobalObjectiveIds

      public Set<String> getGlobalObjectiveIds()
      Retrieves the set of global objective IDs from the manifest. A global objective ID is defined by the presence of a targetObjectiveID in a mapInfo element.
      Returns:
      A set of global objective IDs.
    • getSequencingIndicators

      public List<String> getSequencingIndicators()
      Retrieves a list of sequencing indicators associated with the SCORM 2004 metadata. Sequencing indicators are used to specify the sequencing behaviors or rules applied to activities.
      Returns:
      An unmodifiable list of strings representing the sequencing indicators.
    • getCompletionThresholds

      public Map<String,Map<String,Object>> getCompletionThresholds()
      Retrieves the completion thresholds associated with the SCORM 2004 metadata. Completion thresholds define the required conditions for an activity to reach a completed state, often including minimum progress measures and progress weights.
      Returns:
      An unmodifiable map where keys represent activity identifiers, and values are maps containing threshold details, such as minimum progress measures or other completion-related attributes.
    • getTimeLimitActions

      public Map<String,String> getTimeLimitActions()
      Retrieves the time limit actions associated with the SCORM 2004 metadata. Time limit actions define specific behaviors or instructions to follow when time constraints are applied to activities.
      Returns:
      An unmodifiable map where the keys represent activity identifiers, and the values represent corresponding time limit actions.
    • getDataFromLms

      public Map<String,String> getDataFromLms()
      Retrieves SCORM-based metadata in the form of data from LMS (Learning Management System). This data is represented as a mapping, where the keys are string identifiers, and the values are corresponding string entries provided by the LMS.
      Returns:
      An unmodifiable map containing key-value pairs of data from the LMS.
    • getHideLmsUi

      public Map<String,List<String>> getHideLmsUi()
      Retrieves a mapping of LMS (Learning Management System) UI elements that are hidden. The map keys represent element identifiers, and the values are lists of specific settings or related identifiers associated with each UI element.
      Returns:
      An unmodifiable map where keys are string identifiers of LMS UI elements, and values are lists of related settings or parameters associated with those elements.
    • getControlModes

      public Map<String,Map<String,Boolean>> getControlModes()
      Retrieves the control modes associated with the SCORM 2004 metadata. Control modes define the allowed behaviors or constraints for activities within the SCORM 2004 content package based on specific configurations.
      Returns:
      An unmodifiable map where the keys represent the identifiers of control mode configurations, and the values are maps of settings represented as key-value pairs, where keys are their attributes and values are booleans indicating their state.
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class BaseModuleMetadata<Scorm2004Manifest>
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class BaseModuleMetadata<Scorm2004Manifest>
    • isHasSequencing

      public boolean isHasSequencing()
      Checks if sequencing is enabled.
      Returns:
      true if sequencing is enabled, false otherwise
    • getSequencingLevel

      public SequencingUsageDetector.SequencingLevel getSequencingLevel()
      Retrieves the current sequencing level.
      Returns:
      the sequencing level of type SequencingLevel
    • getActivityDeliveryControls

      public Map<String,DeliveryControls> getActivityDeliveryControls()
      Retrieves an unmodifiable map containing the delivery controls for activities.
      Returns:
      an unmodifiable map where the keys are activity identifiers and the values are the corresponding delivery controls
    • getActivitiesOverridingDeliveryControlDefaults

      public Set<String> getActivitiesOverridingDeliveryControlDefaults()
      Retrieves the set of activities that override the default delivery control settings.
      Returns:
      an unmodifiable Set of activity identifiers representing activities that have customized delivery control defaults.
    • overridesDeliveryControlDefaults

      public boolean overridesDeliveryControlDefaults(String activityId)
      Determines if the delivery control defaults are overridden for a given activity.
      Parameters:
      activityId - The identifier of the activity to check.
      Returns:
      true if the delivery control defaults are overridden for the specified activity, false otherwise.
    • hasMultipleLaunchableUnits

      public boolean hasMultipleLaunchableUnits()
      Description copied from class: ModuleMetadata
      Determines whether this module contains multiple launchable units.

      This affects player configuration defaults such as navigation controls, table of contents display, and launch behavior. In Rustici Engine and similar LMS platforms, this flag is used to conditionally enable multi-SCO navigation features.

      • SCORM 1.2: Multiple resources with scormType="sco"
      • SCORM 2004: Multiple items in organization
      • AICC: Multiple assignable units
      • cmi5/xAPI: Always false (single AU/activity)
      Specified by:
      hasMultipleLaunchableUnits in class ModuleMetadata<Scorm2004Manifest>
      Returns:
      true if the module contains multiple launchable units, false otherwise
    • getManifestFile

      public String getManifestFile()
      Description copied from class: ModuleMetadata
      Retrieves the filename of the manifest file for this module.

      For most module types, this is a constant defined by the specification (e.g., "imsmanifest.xml" for SCORM, "cmi5.xml" for cmi5). For AICC modules, the filename is discovered during parsing as the .crs file can have any name.

      Specified by:
      getManifestFile in class ModuleMetadata<Scorm2004Manifest>
      Returns:
      the manifest filename (e.g., "imsmanifest.xml", "cmi5.xml", "course.crs")