public function setBlock(a\Block $block = NULL)
 {
     if (self::DEBUG) {
         u\DebugUtility::out("setBlock called: " . $block->getId());
     }
     // required
     if ($this->required && $block == NULL) {
         throw new e\EmptyValueException(S_SPAN . c\M::NULL_BLOCK . E_SPAN);
     }
     if ($this->asset_type != c\T::BLOCK) {
         throw new e\NodeException(S_SPAN . "The asset does not accept a block." . E_SPAN);
     }
     if (isset($block)) {
         $this->block_id = $block->getId();
         $this->block_path = $block->getPath();
     } else {
         $this->block_id = NULL;
         $this->block_path = NULL;
     }
     return $this;
 }