class LinesOfCode
@psalm-immutable
Hierarchy
- class \SebastianBergmann\LinesOfCode\LinesOfCode
Expanded class hierarchy of LinesOfCode
File
-
vendor/
sebastian/ lines-of-code/ src/ LinesOfCode.php, line 15
Namespace
SebastianBergmann\LinesOfCodeView source
final class LinesOfCode {
/**
* @psalm-var non-negative-int
*/
private readonly int $linesOfCode;
/**
* @psalm-var non-negative-int
*/
private readonly int $commentLinesOfCode;
/**
* @psalm-var non-negative-int
*/
private readonly int $nonCommentLinesOfCode;
/**
* @psalm-var non-negative-int
*/
private readonly int $logicalLinesOfCode;
/**
* @psalm-param non-negative-int $linesOfCode
* @psalm-param non-negative-int $commentLinesOfCode
* @psalm-param non-negative-int $nonCommentLinesOfCode
* @psalm-param non-negative-int $logicalLinesOfCode
*
* @throws IllogicalValuesException
* @throws NegativeValueException
*/
public function __construct(int $linesOfCode, int $commentLinesOfCode, int $nonCommentLinesOfCode, int $logicalLinesOfCode) {
/** @psalm-suppress DocblockTypeContradiction */
if ($linesOfCode < 0) {
throw new NegativeValueException('$linesOfCode must not be negative');
}
/** @psalm-suppress DocblockTypeContradiction */
if ($commentLinesOfCode < 0) {
throw new NegativeValueException('$commentLinesOfCode must not be negative');
}
/** @psalm-suppress DocblockTypeContradiction */
if ($nonCommentLinesOfCode < 0) {
throw new NegativeValueException('$nonCommentLinesOfCode must not be negative');
}
/** @psalm-suppress DocblockTypeContradiction */
if ($logicalLinesOfCode < 0) {
throw new NegativeValueException('$logicalLinesOfCode must not be negative');
}
if ($linesOfCode - $commentLinesOfCode !== $nonCommentLinesOfCode) {
throw new IllogicalValuesException('$linesOfCode !== $commentLinesOfCode + $nonCommentLinesOfCode');
}
$this->linesOfCode = $linesOfCode;
$this->commentLinesOfCode = $commentLinesOfCode;
$this->nonCommentLinesOfCode = $nonCommentLinesOfCode;
$this->logicalLinesOfCode = $logicalLinesOfCode;
}
/**
* @psalm-return non-negative-int
*/
public function linesOfCode() : int {
return $this->linesOfCode;
}
/**
* @psalm-return non-negative-int
*/
public function commentLinesOfCode() : int {
return $this->commentLinesOfCode;
}
/**
* @psalm-return non-negative-int
*/
public function nonCommentLinesOfCode() : int {
return $this->nonCommentLinesOfCode;
}
/**
* @psalm-return non-negative-int
*/
public function logicalLinesOfCode() : int {
return $this->logicalLinesOfCode;
}
public function plus(self $other) : self {
return new self($this->linesOfCode() + $other->linesOfCode(), $this->commentLinesOfCode() + $other->commentLinesOfCode(), $this->nonCommentLinesOfCode() + $other->nonCommentLinesOfCode(), $this->logicalLinesOfCode() + $other->logicalLinesOfCode());
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
LinesOfCode::$commentLinesOfCode | private | property | @psalm-var non-negative-int |
LinesOfCode::$linesOfCode | private | property | @psalm-var non-negative-int |
LinesOfCode::$logicalLinesOfCode | private | property | @psalm-var non-negative-int |
LinesOfCode::$nonCommentLinesOfCode | private | property | @psalm-var non-negative-int |
LinesOfCode::commentLinesOfCode | public | function | @psalm-return non-negative-int |
LinesOfCode::linesOfCode | public | function | @psalm-return non-negative-int |
LinesOfCode::logicalLinesOfCode | public | function | @psalm-return non-negative-int |
LinesOfCode::nonCommentLinesOfCode | public | function | @psalm-return non-negative-int |
LinesOfCode::plus | public | function | |
LinesOfCode::__construct | public | function | @psalm-param non-negative-int $linesOfCode @psalm-param non-negative-int $commentLinesOfCode @psalm-param non-negative-int $nonCommentLinesOfCode @psalm-param non-negative-int $logicalLinesOfCode |