final protected function populateObject(array $data = []): TelegramTypes
    {
        foreach ($data as $key => $value) {
            $candidateKey = null;
            if (\is_array($value)) {
                $this->logger->debug('Array detected, mapping subobjects for key', ['key' => $key]);
                $candidateKey = $this->mapSubObjects($key, $value);
            }

            if (!empty($candidateKey)) {
                if ($candidateKey instanceof CustomType) {
                    $this->logger->debug('Done with mapping, injecting custom data type to class', ['key' => $key]);
                    $this->$key = $candidateKey->data;
                } else {
                    $this->logger->debug('Done with mapping, injecting native data type to class', ['key' => $key]);
                    $this->$key = $candidateKey;
                }
            } else {
                $this->logger->debug('Performing direct assign for key', ['key' => $key]);
                $this->$key = $value;
            }
        }

        return $this;
    }
final protected function populateObject(array $data = []): TelegramTypes
    {
        foreach ($data as $key => $value) {
            $candidateKey = null;
            if (\is_array($value)) {
                $this->logger->debug('Array detected, mapping subobjects for key', ['key' => $key]);
                $candidateKey = $this->mapSubObjects($key, $value);
            }

            if (!empty($candidateKey)) {
                if ($candidateKey instanceof CustomType) {
                    $this->logger->debug('Done with mapping, injecting custom data type to class', ['key' => $key]);
                    $this->$key = $candidateKey->data;
                } else {
                    $this->logger->debug('Done with mapping, injecting native data type to class', ['key' => $key]);
                    $this->$key = $candidateKey;
                }
            } else {
                $this->logger->debug('Performing direct assign for key', ['key' => $key]);
                $this->$key = $value;
            }
        }

        return $this;
    }
final protected function populateObject ( array $ data = [ ] ) : TelegramTypes { foreach ( $ data as $ key => $ value ) { $ candidateKey = null ; if ( \ is_array ( $ value ) ) { $ this -> logger -> debug ( 'Array detected, mapping subobjects for key' , [ 'key' => $ key ] ) ; $ candidateKey = $ this -> mapSubObjects ( $ key , $ value ) ; } if ( ! empty ( $ candidateKey ) ) { if ( $ candidateKey instanceof CustomType ) { $ this -> logger -> debug ( 'Done with mapping, injecting custom data type to class' , [ 'key' => $ key ] ) ; $ this -> $ key = $ candidateKey -> data ; } else { $ this -> logger -> debug ( 'Done with mapping, injecting native data type to class' , [ 'key' => $ key ] ) ; $ this -> $ key = $ candidateKey ; } } else { $ this -> logger -> debug ( 'Performing direct assign for key' , [ 'key' => $ key ] ) ; $ this -> $ key = $ value ; } } return $ this ; }
Fills the class with the data passed on through the constructor

@param array $data
@return TelegramTypes
Fills the class with the data passed on through the constructor