@@ -438,6 +438,8 @@ private function stripAndReturnParameters($reference)
438438 * @param string $inputString
439439 * @return string | null
440440 * @throws \Exception
441+ *
442+ * @SuppressWarnings(PHPMD.CyclomaticComplexity)
441443 */
442444 private function findAndReplaceReferences ($ objectHandler , $ inputString )
443445 {
@@ -460,25 +462,23 @@ private function findAndReplaceReferences($objectHandler, $inputString)
460462 continue ;
461463 }
462464
463- // specify behavior depending on field
464- switch (get_class ($ obj )) {
465- case PageObject::class:
466- $ this ->validateUrlAreaAgainstActionType ($ obj );
467- $ replacement = $ obj ->getUrl ();
468- $ parameterized = $ obj ->isParameterized ();
469- break ;
470- case SectionObject::class:
471- list (,$ objField ) = $ this ->stripAndSplitReference ($ match );
472- if ($ obj ->getElement ($ objField ) == null ) {
473- throw new TestReferenceException ("Could not resolve entity reference " . $ inputString );
474- }
475- $ parameterized = $ obj ->getElement ($ objField )->isParameterized ();
476- $ replacement = $ obj ->getElement ($ objField )->getPrioritizedSelector ();
477- $ this ->setTimeout ($ obj ->getElement ($ objField )->getTimeout ());
478- break ;
479- case EntityDataObject::class:
480- $ replacement = $ this ->resolveEntityDataObjectReference ($ obj , $ match );
481- break ;
465+ if ($ obj == null ) {
466+ $ replacement = null ;
467+ $ parameterized = null ;
468+ } elseif (get_class ($ obj ) == PageObject::class) {
469+ $ this ->validateUrlAreaAgainstActionType ($ obj );
470+ $ replacement = $ obj ->getUrl ();
471+ $ parameterized = $ obj ->isParameterized ();
472+ } elseif (get_class ($ obj ) == SectionObject::class) {
473+ list (,$ objField ) = $ this ->stripAndSplitReference ($ match );
474+ if ($ obj ->getElement ($ objField ) == null ) {
475+ throw new TestReferenceException ("Could not resolve entity reference " . $ inputString );
476+ }
477+ $ parameterized = $ obj ->getElement ($ objField )->isParameterized ();
478+ $ replacement = $ obj ->getElement ($ objField )->getPrioritizedSelector ();
479+ $ this ->setTimeout ($ obj ->getElement ($ objField )->getTimeout ());
480+ } elseif (get_class ($ obj ) == EntityDataObject::class) {
481+ $ replacement = $ this ->resolveEntityDataObjectReference ($ obj , $ match );
482482 }
483483
484484 if ($ replacement == null ) {
0 commit comments