Skip to content

build(deps): bump the jackson group across 1 directory with 4 updates#500

Merged
github-actions[bot] merged 1 commit into
mainfrom
dependabot/maven/jackson-b84ec7ab04
Jun 4, 2026
Merged

build(deps): bump the jackson group across 1 directory with 4 updates#500
github-actions[bot] merged 1 commit into
mainfrom
dependabot/maven/jackson-b84ec7ab04

build(deps): bump the jackson group across 1 directory with 4 updates

03a5ebc
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
GitHub Actions / Coverage succeeded Jun 4, 2026 in 0s

Code Coverage 68.11 %

This run completed at 06/04/2026 00:10:15

Details

Coverage Report: JaCoCo

  • elearning-module-parser
Outcome Value
Code Coverage % 68.11%
✔️ Number of Lines Covered 6720
❌ Number of Lines Missed 3146
Total Number of Lines 9866

Details:

dev/jcputney/elearning/parser/util

❌ XmlParsingUtils.java

Lines Missed:

      } catch (NumberFormatException e) {
        } catch (IOException | XMLStreamException e) {
        } catch (IOException | XMLStreamException e) {
    }
❌ EncodingDetector.java

Lines Missed:

      } catch (UnsupportedEncodingException | IllegalArgumentException e) {
      } catch (IllegalArgumentException ex) {
❌ FileUtils.java

Lines Missed:

❌ StreamingUtils.java

Lines Missed:

      } catch (Exception e) {
        } catch (Exception e) {
        }
❌ ScormVersionDetector.java

Lines Missed:

      } catch (SAXException ex) {
    }
    } catch (IllegalArgumentException ignored) {
    }

dev/jcputney/elearning/parser/validation

❌ Validator.java
❌ ValidationResult.java

Lines Missed:

❌ ValidationCodes.java
✔️ ValidationIssue.java

All Lines Covered!

dev/jcputney/elearning/parser/impl/factory

❌ DefaultModuleParserFactory.java

Lines Missed:

  }

dev/jcputney/elearning/parser/input/aicc/prereq

❌ AiccPrerequisiteNode.java

Lines Missed:

        .isEquals();
        .toHashCode();
✔️ AiccPrerequisiteTokenType.java

All Lines Covered!

❌ AiccPrerequisiteToken.java

Lines Missed:

  }
        .isEquals();
        .toHashCode();
❌ AiccPrerequisiteExpression.java

Lines Missed:

        .isEquals();
        .toHashCode();
✔️ AiccPrerequisiteNodeType.java

All Lines Covered!

❌ AiccPrerequisiteParser.java

Lines Missed:

    } catch (Exception ignored) {
          break;
          break;
          break;
          break;
          break;
      return;
    }
  }
    if (!token
    String op = token
      default -> 0;
      } catch (IllegalArgumentException e) {
        }

dev/jcputney/elearning/parser/input/scorm2004/ims/ss/objective

❌ Scorm2004ObjectiveMapping.java

Lines Missed:

  }
            that.isReadSatisfiedStatus())
        .isEquals();
        .toHashCode();
❌ Scorm2004Objectives.java

Lines Missed:

  }
        .isEquals();
        .toHashCode();
❌ Scorm2004Objective.java

Lines Missed:

  }
        .isEquals();
        .toHashCode();

dev/jcputney/elearning/parser/output/metadata/xapi

❌ XapiMetadata.java

Lines Missed:

  }
        .filter(activities -> !activities.isEmpty())
  }
  }
  }
  }
  }
        .isEquals();
        .toHashCode();

dev/jcputney/elearning/parser/validators/rules

❌ ValidationRule.java

dev/jcputney/elearning/parser/input/scorm2004/ims/ss/sequencing

❌ SequencingRules.java

Lines Missed:

  }
        .isEquals();
        .toHashCode();
❌ RuleCondition.java

Lines Missed:

  }
            that.getReferencedObjective())
        .isEquals();
        .toHashCode();
❌ SequencingRule.java

Lines Missed:

        .isEquals();
        .toHashCode();
❌ DeliveryControls.java

Lines Missed:

        .isEquals();
        .toHashCode();
❌ LimitConditions.java

Lines Missed:

  }
  }
  }
  }
  }
  }
  }
        .isEquals();
        .toHashCode();
❌ AuxiliaryResources.java

Lines Missed:

  }
  }
            that.getAuxiliaryResourceList())
        .isEquals();
        .toHashCode();
❌ RuleAction.java

Lines Missed:

        .isEquals();
        .toHashCode();
❌ RuleConditions.java

Lines Missed:

        .isEquals();
        .toHashCode();
❌ AuxiliaryResource.java

Lines Missed:

  }
  }
  }
            that.getAuxiliaryResourceID())
        .isEquals();
        .toHashCode();
❌ Sequencing.java

Lines Missed:

  }
        .isEquals();
        .toHashCode();
❌ ControlMode.java

Lines Missed:

  }
        .isEquals();
        .toHashCode();
❌ SequencingCollection.java

Lines Missed:

    }
        .isEquals();
        .toHashCode();

dev/jcputney/elearning/parser/input/lom/properties

✔️ ScoreRollupType.java

All Lines Covered!

❌ HeuristicSpec.java

Lines Missed:

  }
  }
  }
  }
  }
  }
  }
            that.getIsIncompleteSatisfactionMeaningful())
        .isEquals();
        .toHashCode();
✔️ ReturnToLmsActionType.java

All Lines Covered!

❌ CaptureHistorySpec.java

Lines Missed:

  }
  }
  }
  }
        .isEquals();
        .toHashCode();
✔️ CompletionStatusType.java

All Lines Covered!

❌ BehaviorSpec.java

Lines Missed:

  }
  }
  }
  }
  }
  }
  }
  }
  }
  }
  }
  }
  }
  }
  • Line #562
  }
  • Line #600
  }
  • Line #619
  }
  • Line #639
  }
  • Line #677
  }
  • Line #695
  }
  • Line #715
  }
  • Line #734
  }
  • Line #755
  }
  • Line #774
  }
  • Line #794
  }
  • Line #813
  }
  • Line #832
  }
  • Line #851
  }
  • Line #874
  }
  • Line #911
  }
  • Line #929
  }
  • Line #967
            that.getForceObjectiveCompletionSetByContent())
  • Line #977
        .isEquals();
  • Line #1017
        .toHashCode();
✔️ YesNoType.java

All Lines Covered!

❌ StageSpec.java

Lines Missed:

        .isEquals();
        .toHashCode();
❌ ExitTypesSpec.java

Lines Missed:

  }
  }
  }
  }
  }
  }
        .isEquals();
        .toHashCode();
✔️ StatusRollupType.java

All Lines Covered!

❌ LaunchSpec.java

Lines Missed:

  }
  }
  }
  }
  }
        .isEquals();
        .toHashCode();
✔️ OfflineSynchModeType.java

All Lines Covered!

✔️ InvalidMenuItemActionType.java

All Lines Covered!

✔️ LaunchType.java

All Lines Covered!

❌ PackageProperties.java

Lines Missed:

  }
  }
  }
  }
        .isEquals();
        .toHashCode();
❌ AppearanceSpec.java

Lines Missed:

  }
        .isEquals();
        .toHashCode();
❌ DisplayStageSpec.java

Lines Missed:

        .isEquals();
        .toHashCode();
✔️ LookaheadSequencerModeType.java

All Lines Covered!

❌ DebugSpec.java

Lines Missed:

  }
  }
  }
  }
  }
  }
  }
  }
  }
  }
  }
        .isEquals();
        .toHashCode();
❌ CommunicationsSpec.java

Lines Missed:

  }
  }
  }
            that.getMaxFailedSubmissions())
        .isEquals();
        .toHashCode();
✔️ ResetRunTimeDataTimingType.java

All Lines Covered!

❌ ExitActionsSpec.java

Lines Missed:

  }
  }
  }
        .isEquals();
        .toHashCode();
❌ RsopSpec.java

Lines Missed:

  }
  }
        .isEquals();
        .toHashCode();
❌ ControlsSpec.java

Lines Missed:

  }
  }
  }
  }
  }
  }
  }
  }
  }
  }
  }
  }
  }
  }
        .isEquals();
        .toHashCode();
❌ ScoExitActionSpec.java

Lines Missed:

  }
  }
  }
  }
        .isEquals();
        .toHashCode();
✔️ StatusDisplayType.java

All Lines Covered!

✔️ ExitActionType.java

All Lines Covered!

✔️ EnabledDisabledType.java

All Lines Covered!

dev/jcputney/elearning/parser/validators/rules/scorm12

❌ ResourceReferenceValidRule.java

Lines Missed:

❌ OrganizationsRequiredRule.java

Lines Missed:

❌ ResourcesRequiredRule.java

Lines Missed:

❌ LaunchableResourceRequiredRule.java

Lines Missed:

      }
❌ DefaultOrganizationValidRule.java

Lines Missed:

❌ ManifestIdentifierRequiredRule.java

Lines Missed:

❌ ResourceHrefRequiredRule.java

Lines Missed:

dev/jcputney/elearning/parser/input/scorm2004/ims/ss/random

❌ RandomizationControls.java

Lines Missed:

        .isEquals();
        .toHashCode();

dev/jcputney/elearning/parser/input/scorm12/ims/cp

❌ Scorm12Resource.java

Lines Missed:

  }
  }
        .isEquals();
        .toHashCode();
❌ Scorm12Resources.java

Lines Missed:

  }
        .isEquals();
        .toHashCode();
❌ Scorm12Metadata.java

Lines Missed:

        .isEquals();
        .toHashCode();
❌ Scorm12Organizations.java

Lines Missed:

  }
            that.getDefaultOrganization())
        .isEquals();
        .toHashCode();
❌ Scorm12File.java

Lines Missed:

  }
  }
        .isEquals();
        .toHashCode();
❌ Scorm12Dependency.java

Lines Missed:

        .isEquals();
        .toHashCode();
❌ Scorm12Item.java

Lines Missed:

  }
  }
  }
        .isEquals();
        .toHashCode();
❌ Scorm12Organization.java

Lines Missed:

  }
  }
        .isEquals();
        .toHashCode();

dev/jcputney/elearning/parser/input/scorm2004/adl/navigation

✔️ HideLMSUI.java

All Lines Covered!

❌ Presentation.java

Lines Missed:

        .isEquals();
        .toHashCode();
❌ NavigationInterface.java

Lines Missed:

        .isEquals();
        .toHashCode();

dev/jcputney/elearning/parser/input/scorm2004/adl/types

✔️ TimeLimitAction.java

All Lines Covered!

✔️ RollupConsiderationType.java

All Lines Covered!

✔️ ScormType.java

All Lines Covered!

dev/jcputney/elearning/parser/input/scorm2004/sequencing

❌ ActivityNode.java

Lines Missed:

  }
  }
  }
  }
  }
  }
  }
  }
  }
        .isEquals();
        .toHashCode();
❌ ActivityTree.java

Lines Missed:

  }
  }
        .isEquals();
        .toHashCode();

dev/jcputney/elearning/parser/parsers

❌ Scorm2004Parser.java

Lines Missed:

  }
    } catch (IOException e) {
    } catch (XMLStreamException e) {
      return;
    } catch (IOException e) {
    }
  }
      return;
      }
      }
      return;
❌ Scorm12Parser.java

Lines Missed:

  }
      return;
      } catch (IOException e) {
      return;
      return;
      }
        }
      return;
❌ BaseParser.java

Lines Missed:

  }
  }
    } catch (IOException | XMLStreamException e) {
    } catch (ModuleParsingException e) {
    } catch (XMLStreamException e) {
❌ AiccParser.java

Lines Missed:

  }
  }
    } catch (IOException e) {
            + " more)" : ""));
            String value = rawValue != null ? rawValue.toString() : null;
    } catch (ConfigurationException e) {
          break;
❌ XapiParser.java

Lines Missed:

❌ Cmi5Parser.java

Lines Missed:

dev/jcputney/elearning/parser/validators/rules/xapi

❌ LaunchUrlRequiredRule.java

Lines Missed:

❌ ActivitiesRequiredRule.java

Lines Missed:

dev/jcputney/elearning/parser/enums

❌ ModuleEditionType.java

Lines Missed:

      case XAPI -> XAPI;
      case XAPI -> ModuleType.XAPI;
✔️ ModuleType.java

All Lines Covered!

dev/jcputney/elearning/parser/input/lom/types

❌ OrComposite.java

Lines Missed:

        .toHashCode();
✔️ InteractivityType.java

All Lines Covered!

❌ LangString.java

Lines Missed:

        .toHashCode();
✔️ Structure.java

All Lines Covered!

❌ Resource.java

Lines Missed:

        .toHashCode();
✔️ Difficulty.java

All Lines Covered!

✔️ SemanticDensity.java

All Lines Covered!

✔️ CopyrightAndOtherRestrictions.java

All Lines Covered!

❌ Date.java

Lines Missed:

        .toHashCode();
✔️ Cost.java

All Lines Covered!

✔️ Status.java

All Lines Covered!

✔️ Context.java

All Lines Covered!

❌ Taxon.java

Lines Missed:

        .toHashCode();
❌ CatalogEntry.java

Lines Missed:

        .isEquals();
        .toHashCode();
❌ SingleLangString.java

Lines Missed:

        .toHashCode();
✔️ Purpose.java

All Lines Covered!

❌ UnboundLangString.java

Lines Missed:

        .toHashCode();
❌ LomDuration.java

Lines Missed:

        .toHashCode();
❌ ContributeMeta.java

Lines Missed:

  }
        .toHashCode();
❌ Requirement.java

Lines Missed:

        .toHashCode();
❌ TaxonPath.java

Lines Missed:

  }
        .toHashCode();
✔️ AggregationLevel.java

All Lines Covered!

✔️ LearningResourceType.java

All Lines Covered!

❌ ContributeEntity.java

Lines Missed:

  }
  }
        .append(vCard, that.vCard)
        .isEquals();
        .append(vCard)
        .toHashCode();
✔️ Role.java

All Lines Covered!

✔️ Name.java

All Lines Covered!

❌ SourceValuePair.java

Lines Missed:

        .toHashCode();
✔️ Kind.java

All Lines Covered!

✔️ Type.java

All Lines Covered!

✔️ IntendedEndUserRole.java

All Lines Covered!

✔️ InteractivityLevel.java

All Lines Covered!

❌ Identifier.java

Lines Missed:

        .toHashCode();
✔️ RoleMeta.java

All Lines Covered!

❌ Contribute.java

Lines Missed:

        .toHashCode();

dev/jcputney/elearning/parser/input/aicc

❌ CourseStructure.java

Lines Missed:

      return;
    String normalizedKey = key
        return;
        return;
        return;
        return;
  }
        .isEquals();
        .toHashCode();
      return;
      return;
      return;
      return;
      return;
❌ AiccCourse.java

Lines Missed:

        .isEquals();
        .toHashCode();
          .isEquals();
          .toHashCode();
  • Line #641
          .isEquals();
  • Line #651
          .toHashCode();
❌ Descriptor.java

Lines Missed:

        .isEquals();
        .toHashCode();
❌ AiccManifest.java

Lines Missed:

      return;
        continue;
        continue;
    } catch (IllegalArgumentException e) {
      } catch (Exception ignored) {
        continue;
        continue;
  • Line #627
                  .equals(this.launchUrl))
  • Line #831
        .isEquals();
  • Line #842
        .toHashCode();
❌ AiccCompletionCriteria.java

Lines Missed:

      return;
        .isEquals();
        .toHashCode();
❌ CourseDescriptionDeserializer.java

Lines Missed:

❌ AssignableUnit.java

Lines Missed:

  • Line #599
        .isEquals();
  • Line #625
        .toHashCode();

dev/jcputney/elearning/parser/validators

✔️ XapiValidator.java

All Lines Covered!

✔️ AiccValidator.java

All Lines Covered!

✔️ Cmi5Validator.java

All Lines Covered!

✔️ Scorm2004ResourceValidator.java

All Lines Covered!

✔️ Scorm12ResourceValidator.java

All Lines Covered!

dev/jcputney/elearning/parser/output

❌ ModuleMetadata.java

Lines Missed:

dev/jcputney/elearning/parser/validators/rules/common

❌ PathValidationUtils.java

Lines Missed:

❌ PathSecurityRule.java

Lines Missed:

❌ DuplicateIdentifierRule.java

Lines Missed:

❌ OrphanedResourcesRule.java

Lines Missed:

dev/jcputney/elearning/parser/input/scorm2004/ims/ss/rollup

❌ RollupRule.java

Lines Missed:

        .isEquals();
        .toHashCode();
❌ RollupRules.java

Lines Missed:

  }
            that.isRollupObjectiveSatisfied())
        .isEquals();
        .toHashCode();
❌ RollupAction.java

Lines Missed:

        .isEquals();
        .toHashCode();
❌ RollupConditions.java

Lines Missed:

        .isEquals();
        .toHashCode();
❌ RollupCondition.java

Lines Missed:

        .isEquals();
        .toHashCode();

dev/jcputney/elearning/parser/input/scorm2004/adl/cp

❌ ADLData.java

Lines Missed:

        .isEquals();
        .toHashCode();
❌ CompletionThreshold.java

Lines Missed:

  }
            that.getMinProgressMeasure())
        .isEquals();
        .toHashCode();
❌ DataMap.java

Lines Missed:

        .isEquals();
        .toHashCode();

dev/jcputney/elearning/parser/output/metadata/aicc

❌ AiccMetadata.java

Lines Missed:

      return;
        continue;
        continue;
    return v != null ? v.trim() : null;
    } catch (NumberFormatException e) {
        continue;
  • Line #575
      return;
  • Line #609
      return;
  • Line #659
        continue;
  • Line #798
      return;
  • Line #803
      return;
  • Line #859
    return a != null ? a : b;
  • Line #895
    } catch (NumberFormatException e) {
  • Line #922
      default -> null;
  • Line #963
      return;
  • Line #967
      return;
  • Line #972
      return;
  • Line #1048
        .isEquals();
  • Line #1067
        .append(requiresLevel4)
  • Line #1068
        .toHashCode();
  • Line #1236
        return;
❌ AiccObjectiveMetadata.java

Lines Missed:

❌ AiccPrerequisite.java

Lines Missed:

        .filter(s -> !s.isEmpty())
        .isEquals();
        .toHashCode();

dev/jcputney/elearning/parser/output/metadata/scorm12

❌ Scorm12Metadata.java

Lines Missed:

        .isEquals();
        .toHashCode();

dev/jcputney/elearning/parser/output/metadata

❌ BaseModuleMetadata.java

Lines Missed:

dev/jcputney/elearning/parser/input

✔️ PackageManifest.java

All Lines Covered!

dev/jcputney/elearning/parser/api

❌ ModuleParserFactory.java
❌ ModuleFileProvider.java

Lines Missed:

    }
  }
❌ StreamingProgressListener.java
❌ AbstractArchiveFileAccess.java

Lines Missed:

    return rootPath != null ? rootPath : "";
  }
❌ ModuleTypeDetector.java
❌ ParserOptions.java

Lines Missed:

❌ ModuleTypeDetectorPlugin.java
❌ FileAccess.java

Lines Missed:

❌ ModuleParser.java
✔️ ParseResult.java

All Lines Covered!

❌ LoadableMetadata.java

dev/jcputney/elearning/parser/config

❌ FileExistenceValidator.java

Lines Missed:

❌ ModuleSizeCalculator.java

Lines Missed:

dev/jcputney/elearning/parser/input/xapi/types

❌ TextType.java

Lines Missed:

❌ LangString.java

Lines Missed:

❌ SimpleLangString.java

Lines Missed:

        .isEquals();
        .toHashCode();

dev/jcputney/elearning/parser/input/cmi5/types

✔️ MoveOn.java

All Lines Covered!

✔️ LaunchMethod.java

All Lines Covered!

❌ ObjectiveReference.java

Lines Missed:

        .isEquals();
        .toHashCode();
❌ Objective.java

Lines Missed:

        .isEquals();
        .toHashCode();
❌ ReferencesObjectives.java

Lines Missed:

  }
        .isEquals();
        .toHashCode();

dev/jcputney/elearning/parser/input/xapi/tincan

❌ TincanActivity.java

Lines Missed:

  }
        : null;
        : null;
        .isEquals();
        .toHashCode();
❌ TincanManifest.java

Lines Missed:

        .filter(list -> !list.isEmpty())
        .filter(list -> !list.isEmpty())
        .filter(list -> !list.isEmpty())
        .filter(list -> !list.isEmpty())
        .isEquals();
        .toHashCode();

dev/jcputney/elearning/parser/impl/detector

❌ DefaultModuleTypeDetector.java

Lines Missed:

❌ XapiDetectorPlugin.java

Lines Missed:

    } catch (IOException e) {
✔️ ScormDetectorPlugin.java

All Lines Covered!

✔️ Cmi5DetectorPlugin.java

All Lines Covered!

✔️ AiccDetectorPlugin.java

All Lines Covered!

dev/jcputney/elearning/parser/output/metadata/cmi5

❌ Cmi5Metadata.java

Lines Missed:

      }
        .isEquals();
        .toHashCode();
  }
  • Line #564
      });
  • Line #566
  }
  • Line #587
  }

dev/jcputney/elearning/parser/input/lom

❌ LifeCycle.java

Lines Missed:

        .toHashCode();
❌ Annotation.java

Lines Missed:

        .toHashCode();
❌ LOM.java

Lines Missed:

        .filter(titles -> !titles.isEmpty())
        .filter(descriptions -> !descriptions.isEmpty())
        .toHashCode();
❌ Rights.java

Lines Missed:

        .toHashCode();
❌ Relation.java

Lines Missed:

        .toHashCode();
❌ Technical.java

Lines Missed:

  }
        .toHashCode();
❌ Classification.java

Lines Missed:

        .toHashCode();
❌ MetaMetadata.java

Lines Missed:

        .toHashCode();
❌ General.java

Lines Missed:

  }
        .toHashCode();
❌ Educational.java

Lines Missed:

  • Line #547
        .toHashCode();

dev/jcputney/elearning/parser/input/common

❌ LangStringDeserializer.java

Lines Missed:

          .get("@language")
          .get("value")
          .get("#text")
✔️ LangStringListDeserializer.java

All Lines Covered!

❌ TrimAndPreserveIndentationDeserializer.java

Lines Missed:

❌ PercentTypeSerializer.java

Lines Missed:

✔️ PercentType.java

All Lines Covered!

✔️ PercentTypeDeserializer.java

All Lines Covered!

dev/jcputney/elearning/parser/input/scorm2004

❌ ADLCP.java
❌ Scorm2004Manifest.java

Lines Missed:

    }
        .filter(x -> !x.isEmpty())
            .getDuration() != null)
        .filter(id -> id != null && !id.isEmpty()) // Filter non-null and non-empty IDs
  • Line #754
  }
  • Line #790
  }
  • Line #808
  }
  • Line #860
        .toHashCode();
❌ ADLNav.java
❌ SequencingUsageDetector.java

Lines Missed:

        continue;
      return;
  • Line #567
        || isNotEmpty(objectives.getObjectiveList());
  • Line #661
    return hasRuleList(sequencingRules.getPreConditionRules())
  • Line #700
    return navigationInterface != null && isNotEmpty(navigationInterface.getHideLMSUI());
  • Line #745
        && !deliveryControls.isCompletionSetByContent()
❌ ADLSeq.java
❌ IMSSS.java

dev/jcputney/elearning/parser/validators/rules/cmi5

❌ TitleRequiredRule.java

Lines Missed:

❌ CourseRequiredRule.java

Lines Missed:

❌ LaunchUrlRequiredRule.java

Lines Missed:

dev/jcputney/elearning/parser/input/scorm12/adl

❌ Scorm12Prerequisites.java

Lines Missed:

dev/jcputney/elearning/parser/input/scorm12

❌ Scorm12ADLCP.java

Lines Missed:

❌ Scorm12Manifest.java

Lines Missed:

            .getDuration() != null)

dev/jcputney/elearning/parser/exception

✔️ ModuleException.java

All Lines Covered!

✔️ RuntimeFileAccessException.java

All Lines Covered!

❌ ManifestParseException.java

Lines Missed:

  }
✔️ ModuleDetectionException.java

All Lines Covered!

✔️ ModuleParsingException.java

All Lines Covered!

❌ FileAccessException.java

Lines Missed:

  }

dev/jcputney/elearning/parser/input/scorm12/adl/prerequisite

✔️ PrerequisiteParser.java

All Lines Covered!

❌ ParseError.java

Lines Missed:

❌ OrExpression.java

Lines Missed:

❌ ItemReference.java

Lines Missed:

❌ AndExpression.java

Lines Missed:

❌ PrerequisiteExpression.java
❌ NotExpression.java

Lines Missed:

dev/jcputney/elearning/parser/input/scorm2004/adl/sequencing

❌ RollupConsiderations.java

Lines Missed:

  }
  }
  }
  }
  }
        .isEquals();
        .toHashCode();
❌ ADLObjective.java

Lines Missed:

  }
  }
  }
        .isEquals();
        .toHashCode();
❌ MapInfo.java

Lines Missed:

  }
  }
  }
  }
  }
  }
  • Line #251
  }
  • Line #270
  }
  • Line #289
  }
  • Line #308
  }
  • Line #328
  }
  • Line #348
  }
  • Line #372
        .isEquals();
  • Line #389
        .toHashCode();
❌ ConstrainChoiceConsiderations.java

Lines Missed:

  • Line #76
  }
  • Line #94
  }
  • Line #109
        .isEquals();
  • Line #117
        .toHashCode();

dev/jcputney/elearning/parser/validators/rules/aicc

❌ CourseRequiredRule.java

Lines Missed:

❌ LaunchUrlRequiredRule.java

Lines Missed:

❌ TitleRequiredRule.java

Lines Missed:

dev/jcputney/elearning/parser/input/common/serialization

❌ DurationHHMMSSDeserializer.java

Lines Missed:

  • Line #154
    } catch (NumberFormatException | ArithmeticException e) {
  • Line #183
    } catch (NumberFormatException e) {
✔️ DurationIso8601Deserializer.java

All Lines Covered!

❌ Scorm2004SchemaValidator.java

Lines Missed:

  • Line #127
    } catch (Exception ignored) {
  • Line #132
    } catch (Exception ignored) {
  • Line #161
    } catch (SAXException e) {
  • Line #196
    }
  • Line #220
    }
✔️ InstantDeserializer.java

All Lines Covered!

dev/jcputney/elearning/parser/input/cmi5

❌ Course.java

Lines Missed:

  • Line #115
  }
  • Line #195
  }
❌ AU.java

Lines Missed:

  • Line #278
  }
  • Line #347
  }
❌ Block.java

Lines Missed:

  • Line #136
  }
  • Line #198
  }
  • Line #236
  }
  • Line #273
        .isEquals();
  • Line #285
        .toHashCode();
❌ Cmi5Manifest.java

Lines Missed:

  • Line #115
  }
  • Line #137
        .filter(strings -> !strings.isEmpty())
  • Line #155
        .filter(strings -> !strings.isEmpty())
  • Line #173
        .filter(units -> !units.isEmpty())
  • Line #182
          .filter(blockList -> !blockList.isEmpty())
  • Line #185
          .filter(units -> !units.isEmpty())
❌ ObjectivesList.java

Lines Missed:

  • Line #83
  }
  • Line #103
  }
  • Line #117
        .isEquals();
  • Line #124
        .toHashCode();

dev/jcputney/elearning/parser/impl/access

❌ AbstractS3FileAccess.java

Lines Missed:

  • Line #155
      } catch (InterruptedException e) {
  • Line #228
        } catch (Exception e) {
  • Line #256
        .filter(file -> !smallFileCache.containsKey(file))
  • Line #259
      return;
  • Line #399
          .values()
  • Line #401
          .mapToLong(Long::longValue)
  • Line #402
          .sum();
  • Line #431
    }
  • Line #437
      } catch (Exception e) {
  • Line #439
      }
  • Line #440
    }
  • Line #527
            .keySet()
  • Line #528
            .iterator()
  • Line #640
        return; // avoid caching failed lookups or empty files
  • Line #647
    } catch (Exception ignored) {
❌ LocalFileAccess.java

Lines Missed:

  • Line #89
      String fileType = Files.isRegularFile(dirPath) ? "regular file" : "special file";
  • Line #102
    } catch (IOException e) {
  • Line #146
      } catch (IOException ignored) {
  • Line #148
      }
  • Line #188
            } catch (IOException e) {
❌ ClasspathFileAccess.java

Lines Missed:

  • Line #75
          if (entry
  • Line #80
        }
❌ InMemoryFileAccess.java

Lines Missed:

  • Line #321
    } catch (ZipException e) {
  • Line #396
          .limit(5)
❌ S3FileAccessV2.java

Lines Missed:

  • Line #68
      } catch (IOException e) {
  • Line #85
      } catch (IOException e) {
  • Line #221
            continue;
  • Line #226
            continue;
  • Line #239
    } catch (SdkException e) {
  • Line #279
          .key(fullPath)
  • Line #281
    } catch (S3Exception e) {
  • Line #313
          .prefix();
  • Line #314
    } catch (SdkException e) {
  • Line #348
    return key.equals(rootPath) || key.startsWith(rootPath + "/");
  • Line #364
    return key.startsWith(rootPath + "/") ? key.substring(rootPath.length() + 1) : key;
❌ CachedFileAccess.java

Lines Missed:

  • Line #335
    double hitRatio = total > 0 ? (double) cacheHits.get() / total : 0.0;
❌ S3FileAccessV1.java

Lines Missed:

  • Line #62
      } catch (IOException e) {
  • Line #80
    } catch (AmazonServiceException e) {
  • Line #132
            .filter(key -> !key.endsWith("/")) // Filter out directory markers
  • Line #146
    } catch (AmazonServiceException e) {
  • Line #204
    } catch (AmazonServiceException e) {
❌ ZipFileAccess.java

Lines Missed:

  • Line #162
    } catch (IOException e) {
  • Line #190
    }

dev/jcputney/elearning/parser/validators/rules/scorm2004

❌ Scorm2004PathSecurityRule.java

Lines Missed:

❌ OrganizationsRequiredRule.java

Lines Missed:

❌ Scorm2004OrphanedResourcesRule.java

Lines Missed:

❌ ResourceHrefRequiredRule.java

Lines Missed:

❌ DefaultOrganizationValidRule.java

Lines Missed:

❌ ResourceReferenceValidRule.java

Lines Missed:

❌ Scorm2004DuplicateIdentifierRule.java

Lines Missed:

  • Line #98
                    .size()),
  • Line #100
            String.format("Rename duplicate identifiers to be unique. Locations: %s",

dev/jcputney/elearning/parser/impl/provider

✔️ DefaultModuleFileProvider.java

All Lines Covered!

dev/jcputney/elearning/parser/input/scorm2004/ims/cp

❌ Scorm2004Resource.java

Lines Missed:

  • Line #294
        .toHashCode();
❌ Scorm2004Resources.java

Lines Missed:

  • Line #135
        .toHashCode();
❌ Scorm2004Item.java

Lines Missed:

  • Line #496
        .toHashCode();
❌ Scorm2004Organizations.java

Lines Missed:

  • Line #118
        result = org
  • Line #119
            .getItems()
  • Line #123
                .equals(itemId))
  • Line #128
          break;
  • Line #130
      }
  • Line #195
        .toHashCode();
❌ Scorm2004SubMetadata.java

Lines Missed:

  • Line #130
        .toHashCode();
❌ Scorm2004CourseMetadata.java

Lines Missed:

  • Line #187
        .toHashCode();
❌ Scorm2004Organization.java

Lines Missed:

  • Line #289
        .toHashCode();
❌ Scorm2004Dependency.java

Lines Missed:

  • Line #45
  }
  • Line #89
        .isEquals();
  • Line #96
        .toHashCode();
❌ Scorm2004File.java

Lines Missed:

  • Line #138
        .toHashCode();

dev/jcputney/elearning/parser/output/metadata/scorm2004

❌ Scorm2004Metadata.java

Lines Missed:

  • Line #178
      if (adlcpNs != null && adlcpNs
  • Line #251
    return collection != null ? collection.stream() : Stream.empty();
  • Line #390
        .toHashCode();
  • Line #630
        .filter(id -> id != null && !id.isEmpty())
  • Line #794
        return;
  • Line #838
        return;

dev/jcputney/elearning/parser/input/scorm2004/ims/ss/types

✔️ ConditionCombinationType.java

All Lines Covered!

❌ MeasureTypeSerializer.java

Lines Missed:

✔️ RollupActionType.java

All Lines Covered!

✔️ RandomizationTiming.java

All Lines Covered!

✔️ ConditionOperatorType.java

All Lines Covered!

❌ MeasureTypeDeserializer.java

Lines Missed:

✔️ SequencingRuleConditionType.java

All Lines Covered!

❌ MeasureType.java

Lines Missed:

✔️ RollupRuleConditionType.java

All Lines Covered!

✔️ ChildActivitySet.java

All Lines Covered!