| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- <?php
- /**
- * Class QRDataModeAbstract
- *
- * @created 19.11.2020
- * @author smiley <smiley@chillerlan.net>
- * @copyright 2020 smiley
- * @license MIT
- */
- namespace chillerlan\QRCode\Data;
- use chillerlan\QRCode\Common\Mode;
- /**
- * abstract methods for the several data modes
- */
- abstract class QRDataModeAbstract implements QRDataModeInterface{
- /**
- * The data to write
- */
- protected string $data;
- /**
- * QRDataModeAbstract constructor.
- *
- * @throws \chillerlan\QRCode\Data\QRCodeDataException
- */
- public function __construct(string $data){
- $data = $this::convertEncoding($data);
- if(!$this::validateString($data)){
- throw new QRCodeDataException('invalid data');
- }
- $this->data = $data;
- }
- /**
- * returns the character count of the $data string
- */
- protected function getCharCount():int{
- return strlen($this->data);
- }
- public static function convertEncoding(string $string):string{
- return $string;
- }
- /**
- * shortcut
- */
- protected static function getLengthBits(int $versionNumber):int{
- return Mode::getLengthBitsForVersion(static::DATAMODE, $versionNumber);
- }
- }
|