src/Observers/GenericCompositeObserver.php
public function handle(SubjectInterface $subject)
    {

        // initialize the subject
        $this->setSubject($subject);

        // load the observers
        $observers = $this->getObservers();

        // process the observers
        foreach ($observers as $observer) {
            // query whether or not we have to skip the row
            if ($subject->rowHasToBeSkipped()) {
                // log a debug message with the actual line nr/file information
                $subject->getSystemLogger()->warning(
                    $subject->appendExceptionSuffix(
                        sprintf(
                            'Skip processing operation "%s" after observer "%s"',
                            $subject->getOperationName(),
                            $subject->getConfiguration()->getId()
                        )
                    )
                );

                // skip the row
                break;
            }

            // if not, set the subject and process the observer
            $subject->setRow($observer->handle($subject));
        }

        // returns the subject's row
        return $subject->getRow();
    }
public function handle(SubjectInterface $subject)
    {

        // initialize the subject
        $this->setSubject($subject);

        // load the observers
        $observers = $this->getObservers();

        // process the observers
        foreach ($observers as $observer) {
            // query whether or not we have to skip the row
            if ($subject->rowHasToBeSkipped()) {
                // log a debug message with the actual line nr/file information
                $subject->getSystemLogger()->warning(
                    $subject->appendExceptionSuffix(
                        sprintf(
                            'Skip processing operation "%s" after observer "%s"',
                            $subject->getOperationName(),
                            $subject->getConfiguration()->getId()
                        )
                    )
                );

                // skip the row
                break;
            }

            // if not, set the subject and process the observer
            $subject->setRow($observer->handle($subject));
        }

        // returns the subject's row
        return $subject->getRow();
    }
Will be invoked by the action on the events the listener has been registered for.

@param \TechDivision\Import\Subjects\SubjectInterface $subject The subject instance

@return array The modified row