public function has($mask)
    {
        if (is_string($mask) && defined($name = 'static::MASK_'.strtoupper($mask))) {
            $mask = constant($name);
        } elseif (!is_int($mask)) {
            throw new InvalidArgumentException('$mask must be an integer.');
        }

        return ($this->mask & $mask) != 0;
    }