misuzu/src/Profile/ProfileFieldFormatInfo.php

61 lines
1.5 KiB
PHP

<?php
namespace Misuzu\Profile;
use Index\Data\IDbResult;
class ProfileFieldFormatInfo {
public function __construct(
private string $id,
private string $fieldId,
private ?string $regex,
private ?string $linkFormat,
private string $displayFormat,
) {}
public static function fromResult(IDbResult $result): ProfileFieldFormatInfo {
return new ProfileFieldFormatInfo(
id: $result->getString(0),
fieldId: $result->getString(1),
regex: $result->getStringOrNull(2),
linkFormat: $result->getStringOrNull(3),
displayFormat: $result->getString(4),
);
}
public function getId(): string {
return $this->id;
}
public function getFieldId(): string {
return $this->fieldId;
}
public function hasRegEx(): bool {
return $this->regex !== null;
}
public function getRegEx(): ?string {
return $this->regex;
}
public function hasLinkFormat(): bool {
return $this->linkFormat !== null;
}
public function getLinkFormat(): ?string {
return $this->linkFormat;
}
public function formatLink(string $value): ?string {
return $this->linkFormat === null ? null : sprintf($this->linkFormat, $value);
}
public function getDisplayFormat(): string {
return $this->displayFormat;
}
public function formatDisplay(string $value): string {
return sprintf($this->displayFormat, $value);
}
}