public function __construct($minimum = 1, $maximum = null, $isAlways = false)
{
if ($minimum < 0 || $maximum < 0) {
throw new InvalidCardinalityStateException();
}
if (null !== $maximum && $minimum > $maximum) {
throw new InvalidCardinalityStateException();
}
if (null === $maximum && !$minimum) {
throw new InvalidCardinalityStateException();
}
$this->minimum = $minimum;
$this->maximum = $maximum;
$this->setIsAlways($isAlways);
}