public function setAdapter(AbstractAdapter $adapter)
    {
        $cls = get_class($adapter);
        foreach(self::$default_masks as $_mask) {
            if (null===@constant($cls.'::mask_'.$_mask)) {
                throw new \LogicException(
                    sprintf('Reporter adapter "%s" must define a mask named "%s"!', $cls, $_mask)
                );
            }
        }
        $this->__adapter = $adapter;
        return $this;
    }