public function subclass(): SubClassMappingDefiner
    {
        $this->verifyDefinedClass();

        return new SubClassMappingDefiner(
            $this->orm,
            $this,
            function (callable $mappingLoader, MapperDefinition $subClassDefinition) {
                $subClassDefinition->verifyDefinedClass();
                $subClassName = $subClassDefinition->class->getClassName();

                if (!is_a($subClassName, $this->class->getClassName(), true)) {
                    throw IncompleteMapperDefinitionException::format(
                        'Invalid subclass mapper definition for: defined type must be a subclass of %s, %s given',
                        $this->class->getClassName(),
                        $subClassName
                    );
                }

                $this->subClassMappingFactories[$subClassName] = $mappingLoader;
            }
        );
    }
public function subclass(): SubClassMappingDefiner
    {
        $this->verifyDefinedClass();

        return new SubClassMappingDefiner(
            $this->orm,
            $this,
            function (callable $mappingLoader, MapperDefinition $subClassDefinition) {
                $subClassDefinition->verifyDefinedClass();
                $subClassName = $subClassDefinition->class->getClassName();

                if (!is_a($subClassName, $this->class->getClassName(), true)) {
                    throw IncompleteMapperDefinitionException::format(
                        'Invalid subclass mapper definition for: defined type must be a subclass of %s, %s given',
                        $this->class->getClassName(),
                        $subClassName
                    );
                }

                $this->subClassMappingFactories[$subClassName] = $mappingLoader;
            }
        );
    }
public function subclass ( ) : SubClassMappingDefiner { $ this -> verifyDefinedClass ( ) ; return new SubClassMappingDefiner ( $ this -> orm , $ this , function ( callable $ mappingLoader , MapperDefinition $ subClassDefinition ) { $ subClassDefinition -> verifyDefinedClass ( ) ; $ subClassName = $ subClassDefinition -> class -> getClassName ( ) ; if ( ! is_a ( $ subClassName , $ this -> class -> getClassName ( ) , true ) ) { throw IncompleteMapperDefinitionException :: format ( 'Invalid subclass mapper definition for: defined type must be a subclass of %s, %s given' , $ this -> class -> getClassName ( ) , $ subClassName ) ; } $ this -> subClassMappingFactories [ $ subClassName ] = $ mappingLoader ; } ) ; }
Defines a mapper for properties of a subclass of parent object.

@return SubClassMappingDefiner
@throws IncompleteMapperDefinitionException
Defines a mapper for properties of a subclass of parent object .