aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/chillerlan/php-qrcode/src/Data/QRDataModeAbstract.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/chillerlan/php-qrcode/src/Data/QRDataModeAbstract.php')
-rw-r--r--vendor/chillerlan/php-qrcode/src/Data/QRDataModeAbstract.php61
1 files changed, 61 insertions, 0 deletions
diff --git a/vendor/chillerlan/php-qrcode/src/Data/QRDataModeAbstract.php b/vendor/chillerlan/php-qrcode/src/Data/QRDataModeAbstract.php
new file mode 100644
index 000000000..94b93ac0e
--- /dev/null
+++ b/vendor/chillerlan/php-qrcode/src/Data/QRDataModeAbstract.php
@@ -0,0 +1,61 @@
+<?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);
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public static function convertEncoding(string $string):string{
+ return $string;
+ }
+
+ /**
+ * shortcut
+ */
+ protected static function getLengthBits(int $versionNumber):int{
+ return Mode::getLengthBitsForVersion(static::DATAMODE, $versionNumber);
+ }
+
+}