public function __construct($enumeration)
{
if (!is_subclass_of($enumeration, __NAMESPACE__ . '\\Enum')) {
throw new InvalidArgumentException(sprintf("This EnumSet can handle subclasses of '%s' only", __NAMESPACE__ . '\\Enum'));
}
$this->enumeration = $enumeration;
$this->ordinalMax = count($enumeration::getConstants());
// init the bitset with zeros
$this->bitset = str_repeat("", ceil($this->ordinalMax / 8));
}