aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/libraries/classes/Properties
diff options
context:
space:
mode:
Diffstat (limited to 'srcs/phpmyadmin/libraries/classes/Properties')
-rw-r--r--srcs/phpmyadmin/libraries/classes/Properties/Options/Groups/OptionsPropertyMainGroup.php35
-rw-r--r--srcs/phpmyadmin/libraries/classes/Properties/Options/Groups/OptionsPropertyRootGroup.php35
-rw-r--r--srcs/phpmyadmin/libraries/classes/Properties/Options/Groups/OptionsPropertySubgroup.php66
-rw-r--r--srcs/phpmyadmin/libraries/classes/Properties/Options/Items/BoolPropertyItem.php35
-rw-r--r--srcs/phpmyadmin/libraries/classes/Properties/Options/Items/DocPropertyItem.php35
-rw-r--r--srcs/phpmyadmin/libraries/classes/Properties/Options/Items/HiddenPropertyItem.php35
-rw-r--r--srcs/phpmyadmin/libraries/classes/Properties/Options/Items/MessageOnlyPropertyItem.php35
-rw-r--r--srcs/phpmyadmin/libraries/classes/Properties/Options/Items/NumberPropertyItem.php35
-rw-r--r--srcs/phpmyadmin/libraries/classes/Properties/Options/Items/RadioPropertyItem.php35
-rw-r--r--srcs/phpmyadmin/libraries/classes/Properties/Options/Items/SelectPropertyItem.php35
-rw-r--r--srcs/phpmyadmin/libraries/classes/Properties/Options/Items/TextPropertyItem.php35
-rw-r--r--srcs/phpmyadmin/libraries/classes/Properties/Options/OptionsPropertyGroup.php109
-rw-r--r--srcs/phpmyadmin/libraries/classes/Properties/Options/OptionsPropertyItem.php136
-rw-r--r--srcs/phpmyadmin/libraries/classes/Properties/Options/OptionsPropertyOneItem.php161
-rw-r--r--srcs/phpmyadmin/libraries/classes/Properties/Plugins/ExportPluginProperties.php64
-rw-r--r--srcs/phpmyadmin/libraries/classes/Properties/Plugins/ImportPluginProperties.php33
-rw-r--r--srcs/phpmyadmin/libraries/classes/Properties/Plugins/PluginPropertyItem.php177
-rw-r--r--srcs/phpmyadmin/libraries/classes/Properties/Plugins/SchemaPluginProperties.php46
-rw-r--r--srcs/phpmyadmin/libraries/classes/Properties/PropertyItem.php48
19 files changed, 1190 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/libraries/classes/Properties/Options/Groups/OptionsPropertyMainGroup.php b/srcs/phpmyadmin/libraries/classes/Properties/Options/Groups/OptionsPropertyMainGroup.php
new file mode 100644
index 0000000..99d3546
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Properties/Options/Groups/OptionsPropertyMainGroup.php
@@ -0,0 +1,35 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Holds the PhpMyAdmin\Properties\Options\Groups\OptionsPropertyMainGroup class
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Properties\Options\Groups;
+
+use PhpMyAdmin\Properties\Options\OptionsPropertyGroup;
+
+/**
+ * Group property item class of type main
+ *
+ * @package PhpMyAdmin
+ */
+class OptionsPropertyMainGroup extends OptionsPropertyGroup
+{
+ /**
+ * Returns the property item type of either an instance of
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyOneItem ( f.e. "bool",
+ * "text", "radio", etc ) or
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyGroup ( "root", "main"
+ * or "subgroup" )
+ * - PhpMyAdmin\Properties\Plugins\PluginPropertyItem ( "export", "import", "transformations" )
+ *
+ * @return string
+ */
+ public function getItemType()
+ {
+ return "main";
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Properties/Options/Groups/OptionsPropertyRootGroup.php b/srcs/phpmyadmin/libraries/classes/Properties/Options/Groups/OptionsPropertyRootGroup.php
new file mode 100644
index 0000000..298f566
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Properties/Options/Groups/OptionsPropertyRootGroup.php
@@ -0,0 +1,35 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Holds the PhpMyAdmin\Properties\Options\Groups\OptionsPropertyRootGroup class
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Properties\Options\Groups;
+
+use PhpMyAdmin\Properties\Options\OptionsPropertyGroup;
+
+/**
+ * Group property item class of type root
+ *
+ * @package PhpMyAdmin
+ */
+class OptionsPropertyRootGroup extends OptionsPropertyGroup
+{
+ /**
+ * Returns the property item type of either an instance of
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyOneItem ( f.e. "bool",
+ * "text", "radio", etc ) or
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyGroup ( "root", "main"
+ * or "subgroup" )
+ * - PhpMyAdmin\Properties\Plugins\PluginPropertyItem ( "export", "import", "transformations" )
+ *
+ * @return string
+ */
+ public function getItemType()
+ {
+ return "root";
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Properties/Options/Groups/OptionsPropertySubgroup.php b/srcs/phpmyadmin/libraries/classes/Properties/Options/Groups/OptionsPropertySubgroup.php
new file mode 100644
index 0000000..050d2c2
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Properties/Options/Groups/OptionsPropertySubgroup.php
@@ -0,0 +1,66 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Holds the PhpMyAdmin\Properties\Options\Groups\OptionsPropertySubgroup class
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Properties\Options\Groups;
+
+use PhpMyAdmin\Properties\Options\OptionsPropertyGroup;
+use PhpMyAdmin\Properties\PropertyItem;
+
+/**
+ * Group property item class of type subgroup
+ *
+ * @package PhpMyAdmin
+ */
+class OptionsPropertySubgroup extends OptionsPropertyGroup
+{
+ /**
+ * Subgroup Header
+ *
+ * @var PropertyItem
+ */
+ private $_subgroupHeader;
+ /* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */
+
+ /**
+ * Returns the property item type of either an instance of
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyOneItem ( f.e. "bool",
+ * "text", "radio", etc ) or
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyGroup ( "root", "main"
+ * or "subgroup" )
+ * - PhpMyAdmin\Properties\Plugins\PluginPropertyItem ( "export", "import", "transformations" )
+ *
+ * @return string
+ */
+ public function getItemType()
+ {
+ return "subgroup";
+ }
+
+ /**
+ * Gets the subgroup header
+ *
+ * @return PropertyItem
+ */
+ public function getSubgroupHeader()
+ {
+ return $this->_subgroupHeader;
+ }
+
+ /**
+ * Sets the subgroup header
+ *
+ * @param PropertyItem $subgroupHeader subgroup header
+ *
+ * @return void
+ */
+ public function setSubgroupHeader($subgroupHeader)
+ {
+ $this->_subgroupHeader = $subgroupHeader;
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Properties/Options/Items/BoolPropertyItem.php b/srcs/phpmyadmin/libraries/classes/Properties/Options/Items/BoolPropertyItem.php
new file mode 100644
index 0000000..7441243
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Properties/Options/Items/BoolPropertyItem.php
@@ -0,0 +1,35 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Holds the PhpMyAdmin\Properties\Options\Items\BoolPropertyItem class
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Properties\Options\Items;
+
+use PhpMyAdmin\Properties\Options\OptionsPropertyOneItem;
+
+/**
+ * Single property item class of type bool
+ *
+ * @package PhpMyAdmin
+ */
+class BoolPropertyItem extends OptionsPropertyOneItem
+{
+ /**
+ * Returns the property item type of either an instance of
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyOneItem ( f.e. "bool",
+ * "text", "radio", etc ) or
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyGroup ( "root", "main"
+ * or "subgroup" )
+ * - PhpMyAdmin\Properties\Plugins\PluginPropertyItem ( "export", "import", "transformations" )
+ *
+ * @return string
+ */
+ public function getItemType()
+ {
+ return "bool";
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Properties/Options/Items/DocPropertyItem.php b/srcs/phpmyadmin/libraries/classes/Properties/Options/Items/DocPropertyItem.php
new file mode 100644
index 0000000..51a05f4
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Properties/Options/Items/DocPropertyItem.php
@@ -0,0 +1,35 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Holds the PhpMyAdmin\Properties\Options\Items\DocPropertyItem class
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Properties\Options\Items;
+
+use PhpMyAdmin\Properties\Options\OptionsPropertyOneItem;
+
+/**
+ * Single property item class of type doc
+ *
+ * @package PhpMyAdmin
+ */
+class DocPropertyItem extends OptionsPropertyOneItem
+{
+ /**
+ * Returns the property item type of either an instance of
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyOneItem ( f.e. "bool",
+ * "text", "radio", etc ) or
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyGroup ( "root", "main"
+ * or "subgroup" )
+ * - PhpMyAdmin\Properties\Plugins\PluginPropertyItem ( "export", "import", "transformations" )
+ *
+ * @return string
+ */
+ public function getItemType()
+ {
+ return "doc";
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Properties/Options/Items/HiddenPropertyItem.php b/srcs/phpmyadmin/libraries/classes/Properties/Options/Items/HiddenPropertyItem.php
new file mode 100644
index 0000000..116666f
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Properties/Options/Items/HiddenPropertyItem.php
@@ -0,0 +1,35 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Holds the PhpMyAdmin\Properties\Options\Items\HiddenPropertyItem class
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Properties\Options\Items;
+
+use PhpMyAdmin\Properties\Options\OptionsPropertyOneItem;
+
+/**
+ * Single property item class of type hidden
+ *
+ * @package PhpMyAdmin
+ */
+class HiddenPropertyItem extends OptionsPropertyOneItem
+{
+ /**
+ * Returns the property item type of either an instance of
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyOneItem ( f.e. "bool",
+ * "text", "radio", etc ) or
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyGroup ( "root", "main"
+ * or "subgroup" )
+ * - PhpMyAdmin\Properties\Plugins\PluginPropertyItem ( "export", "import", "transformations" )
+ *
+ * @return string
+ */
+ public function getItemType()
+ {
+ return "hidden";
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Properties/Options/Items/MessageOnlyPropertyItem.php b/srcs/phpmyadmin/libraries/classes/Properties/Options/Items/MessageOnlyPropertyItem.php
new file mode 100644
index 0000000..ab8e1b2
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Properties/Options/Items/MessageOnlyPropertyItem.php
@@ -0,0 +1,35 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Holds the PhpMyAdmin\Properties\Options\Items\MessageOnlyPropertyItem class
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Properties\Options\Items;
+
+use PhpMyAdmin\Properties\Options\OptionsPropertyOneItem;
+
+/**
+ * Single property item class of type messageOnly
+ *
+ * @package PhpMyAdmin
+ */
+class MessageOnlyPropertyItem extends OptionsPropertyOneItem
+{
+ /**
+ * Returns the property item type of either an instance of
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyOneItem ( f.e. "bool",
+ * "text", "radio", etc ) or
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyGroup ( "root", "main"
+ * or "subgroup" )
+ * - PhpMyAdmin\Properties\Plugins\PluginPropertyItem ( "export", "import", "transformations" )
+ *
+ * @return string
+ */
+ public function getItemType()
+ {
+ return "messageOnly";
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Properties/Options/Items/NumberPropertyItem.php b/srcs/phpmyadmin/libraries/classes/Properties/Options/Items/NumberPropertyItem.php
new file mode 100644
index 0000000..9c81deb
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Properties/Options/Items/NumberPropertyItem.php
@@ -0,0 +1,35 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Holds the PhpMyAdmin\Properties\Options\Items\TextPropertyItem class
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Properties\Options\Items;
+
+use PhpMyAdmin\Properties\Options\OptionsPropertyOneItem;
+
+/**
+ * Single property item class of type number
+ *
+ * @package PhpMyAdmin
+ */
+class NumberPropertyItem extends OptionsPropertyOneItem
+{
+ /**
+ * Returns the property item type of either an instance of
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyOneItem ( f.e. "bool",
+ * "text", "radio", etc ) or
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyGroup ( "root", "main"
+ * or "subgroup" )
+ * - PhpMyAdmin\Properties\Plugins\PluginPropertyItem ( "export", "import", "transformations" )
+ *
+ * @return string
+ */
+ public function getItemType()
+ {
+ return "number";
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Properties/Options/Items/RadioPropertyItem.php b/srcs/phpmyadmin/libraries/classes/Properties/Options/Items/RadioPropertyItem.php
new file mode 100644
index 0000000..98f93a9
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Properties/Options/Items/RadioPropertyItem.php
@@ -0,0 +1,35 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Holds the PhpMyAdmin\Properties\Options\Items\RadioPropertyItem class
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Properties\Options\Items;
+
+use PhpMyAdmin\Properties\Options\OptionsPropertyOneItem;
+
+/**
+ * Single property item class of type radio
+ *
+ * @package PhpMyAdmin
+ */
+class RadioPropertyItem extends OptionsPropertyOneItem
+{
+ /**
+ * Returns the property item type of either an instance of
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyOneItem ( f.e. "bool",
+ * "text", "radio", etc ) or
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyGroup ( "root", "main"
+ * or "subgroup" )
+ * - PhpMyAdmin\Properties\Plugins\PluginPropertyItem ( "export", "import", "transformations" )
+ *
+ * @return string
+ */
+ public function getItemType()
+ {
+ return "radio";
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Properties/Options/Items/SelectPropertyItem.php b/srcs/phpmyadmin/libraries/classes/Properties/Options/Items/SelectPropertyItem.php
new file mode 100644
index 0000000..ea7abcd
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Properties/Options/Items/SelectPropertyItem.php
@@ -0,0 +1,35 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Holds the PhpMyAdmin\Properties\Options\Items\SelectPropertyItem class
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Properties\Options\Items;
+
+use PhpMyAdmin\Properties\Options\OptionsPropertyOneItem;
+
+/**
+ * Single property item class of type select
+ *
+ * @package PhpMyAdmin
+ */
+class SelectPropertyItem extends OptionsPropertyOneItem
+{
+ /**
+ * Returns the property item type of either an instance of
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyOneItem ( f.e. "bool",
+ * "text", "radio", etc ) or
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyGroup ( "root", "main"
+ * or "subgroup" )
+ * - PhpMyAdmin\Properties\Plugins\PluginPropertyItem ( "export", "import", "transformations" )
+ *
+ * @return string
+ */
+ public function getItemType()
+ {
+ return "select";
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Properties/Options/Items/TextPropertyItem.php b/srcs/phpmyadmin/libraries/classes/Properties/Options/Items/TextPropertyItem.php
new file mode 100644
index 0000000..5c10a54
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Properties/Options/Items/TextPropertyItem.php
@@ -0,0 +1,35 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Holds the PhpMyAdmin\Properties\Options\Items\TextPropertyItem class
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Properties\Options\Items;
+
+use PhpMyAdmin\Properties\Options\OptionsPropertyOneItem;
+
+/**
+ * Single property item class of type text
+ *
+ * @package PhpMyAdmin
+ */
+class TextPropertyItem extends OptionsPropertyOneItem
+{
+ /**
+ * Returns the property item type of either an instance of
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyOneItem ( f.e. "bool",
+ * "text", "radio", etc ) or
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyGroup ( "root", "main"
+ * or "subgroup" )
+ * - PhpMyAdmin\Properties\Plugins\PluginPropertyItem ( "export", "import", "transformations" )
+ *
+ * @return string
+ */
+ public function getItemType()
+ {
+ return "text";
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Properties/Options/OptionsPropertyGroup.php b/srcs/phpmyadmin/libraries/classes/Properties/Options/OptionsPropertyGroup.php
new file mode 100644
index 0000000..2ff5c75
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Properties/Options/OptionsPropertyGroup.php
@@ -0,0 +1,109 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Superclass for the Property Group classes.
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Properties\Options;
+
+use Countable;
+
+/**
+ * Parents group property items and provides methods to manage groups of
+ * properties.
+ *
+ * @todo modify descriptions if needed, when the options are integrated
+ * @package PhpMyAdmin
+ */
+abstract class OptionsPropertyGroup extends OptionsPropertyItem implements Countable
+{
+ /**
+ * Holds a group of properties (PhpMyAdmin\Properties\Options\OptionsPropertyItem instances)
+ *
+ * @var array
+ */
+ private $_properties;
+
+ /**
+ * Adds a property to the group of properties
+ *
+ * @param OptionsPropertyItem $property the property instance to be added
+ * to the group
+ *
+ * @return void
+ */
+ public function addProperty($property)
+ {
+ if (! $this->getProperties() == null
+ && in_array($property, $this->getProperties(), true)
+ ) {
+ return;
+ }
+ $this->_properties[] = $property;
+ }
+
+ /**
+ * Removes a property from the group of properties
+ *
+ * @param OptionsPropertyItem $property the property instance to be removed
+ * from the group
+ *
+ * @return void
+ */
+ public function removeProperty($property)
+ {
+ $this->_properties = array_diff(
+ $this->getProperties(),
+ [$property]
+ );
+ }
+
+
+ /* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */
+
+ /**
+ * Gets the instance of the class
+ *
+ * @return OptionsPropertyGroup
+ */
+ public function getGroup()
+ {
+ return $this;
+ }
+
+ /**
+ * Gets the group of properties
+ *
+ * @return array
+ */
+ public function getProperties()
+ {
+ return $this->_properties;
+ }
+
+ /**
+ * Gets the number of properties
+ *
+ * @return int
+ */
+ public function getNrOfProperties()
+ {
+ if ($this->_properties === null) {
+ return 0;
+ }
+ return count($this->_properties);
+ }
+
+ /**
+ * Countable interface implementation.
+ *
+ * @return int
+ */
+ public function count()
+ {
+ return $this->getNrOfProperties();
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Properties/Options/OptionsPropertyItem.php b/srcs/phpmyadmin/libraries/classes/Properties/Options/OptionsPropertyItem.php
new file mode 100644
index 0000000..829f6d9
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Properties/Options/OptionsPropertyItem.php
@@ -0,0 +1,136 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * The top-level class of the "Options" subtree of the object-oriented
+ * properties system (the other subtree is "Plugin").
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Properties\Options;
+
+use PhpMyAdmin\Properties\PropertyItem;
+
+/**
+ * Superclass for
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyOneItem and
+ * - OptionsProperty Group
+ *
+ * @package PhpMyAdmin
+ */
+abstract class OptionsPropertyItem extends PropertyItem
+{
+ /**
+ * Name
+ *
+ * @var string
+ */
+ private $_name;
+ /**
+ * Text
+ *
+ * @var string
+ */
+ private $_text;
+ /**
+ * What to force
+ *
+ * @var string
+ */
+ private $_force;
+
+ /**
+ * constructor
+ *
+ * @param string $name Item name
+ * @param string $text Item text
+ */
+ public function __construct($name = null, $text = null)
+ {
+ if ($name) {
+ $this->_name = $name;
+ }
+ if ($text) {
+ $this->_text = $text;
+ }
+ }
+
+ /* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */
+
+ /**
+ * Gets the name
+ *
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->_name;
+ }
+
+ /**
+ * Sets the name
+ *
+ * @param string $name name
+ *
+ * @return void
+ */
+ public function setName($name)
+ {
+ $this->_name = $name;
+ }
+
+ /**
+ * Gets the text
+ *
+ * @return string
+ */
+ public function getText()
+ {
+ return $this->_text;
+ }
+
+ /**
+ * Sets the text
+ *
+ * @param string $text text
+ *
+ * @return void
+ */
+ public function setText($text)
+ {
+ $this->_text = $text;
+ }
+
+ /**
+ * Gets the force parameter
+ *
+ * @return string
+ */
+ public function getForce()
+ {
+ return $this->_force;
+ }
+
+ /**
+ * Sets the force parameter
+ *
+ * @param string $force force parameter
+ *
+ * @return void
+ */
+ public function setForce($force)
+ {
+ $this->_force = $force;
+ }
+
+ /**
+ * Returns the property type ( either "options", or "plugin" ).
+ *
+ * @return string
+ */
+ public function getPropertyType()
+ {
+ return "options";
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Properties/Options/OptionsPropertyOneItem.php b/srcs/phpmyadmin/libraries/classes/Properties/Options/OptionsPropertyOneItem.php
new file mode 100644
index 0000000..2ffca61
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Properties/Options/OptionsPropertyOneItem.php
@@ -0,0 +1,161 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Superclass for the single Property Item classes.
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Properties\Options;
+
+/**
+ * Parents only single property items (not groups).
+ * Defines possible options and getters and setters for them.
+ *
+ * @package PhpMyAdmin
+ */
+abstract class OptionsPropertyOneItem extends OptionsPropertyItem
+{
+ /**
+ * Whether to force or not
+ *
+ * @var bool
+ */
+ private $_force_one;
+ /**
+ * Values
+ *
+ * @var array
+ */
+ private $_values;
+ /**
+ * Doc
+ *
+ * @var string
+ */
+ private $_doc;
+ /**
+ * Length
+ *
+ * @var int
+ */
+ private $_len;
+ /**
+ * Size
+ *
+ * @var int
+ */
+ private $_size;
+ /* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */
+
+ /**
+ * Gets the force parameter
+ *
+ * @return bool
+ */
+ public function getForce()
+ {
+ return $this->_force_one;
+ }
+
+ /**
+ * Sets the force parameter
+ *
+ * @param bool $force force parameter
+ *
+ * @return void
+ */
+ public function setForce($force)
+ {
+ $this->_force_one = $force;
+ }
+
+ /**
+ * Gets the values
+ *
+ * @return array
+ */
+ public function getValues()
+ {
+ return $this->_values;
+ }
+
+ /**
+ * Sets the values
+ *
+ * @param array $values values
+ *
+ * @return void
+ */
+ public function setValues(array $values)
+ {
+ $this->_values = $values;
+ }
+
+ /**
+ * Gets MySQL documentation pointer
+ *
+ * @return string
+ */
+ public function getDoc()
+ {
+ return $this->_doc;
+ }
+
+ /**
+ * Sets the doc
+ *
+ * @param string $doc MySQL documentation pointer
+ *
+ * @return void
+ */
+ public function setDoc($doc)
+ {
+ $this->_doc = $doc;
+ }
+
+ /**
+ * Gets the length
+ *
+ * @return int
+ */
+ public function getLen()
+ {
+ return $this->_len;
+ }
+
+ /**
+ * Sets the length
+ *
+ * @param int $len length
+ *
+ * @return void
+ */
+ public function setLen($len)
+ {
+ $this->_len = $len;
+ }
+
+ /**
+ * Gets the size
+ *
+ * @return int
+ */
+ public function getSize()
+ {
+ return $this->_size;
+ }
+
+ /**
+ * Sets the size
+ *
+ * @param int $size size
+ *
+ * @return void
+ */
+ public function setSize($size)
+ {
+ $this->_size = $size;
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Properties/Plugins/ExportPluginProperties.php b/srcs/phpmyadmin/libraries/classes/Properties/Plugins/ExportPluginProperties.php
new file mode 100644
index 0000000..4ae4e03
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Properties/Plugins/ExportPluginProperties.php
@@ -0,0 +1,64 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Properties class for the export plug-in
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Properties\Plugins;
+
+/**
+ * Defines possible options and getters and setters for them.
+ *
+ * @todo modify descriptions if needed, when the plug-in properties are integrated
+ * @package PhpMyAdmin
+ */
+class ExportPluginProperties extends PluginPropertyItem
+{
+ /**
+ * Whether to force or not
+ *
+ * @var bool
+ */
+ private $_forceFile;
+ /* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */
+
+ /**
+ * Returns the property item type of either an instance of
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyOneItem ( f.e. "bool",
+ * "text", "radio", etc ) or
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyGroup ( "root", "main"
+ * or "subgroup" )
+ * - PhpMyAdmin\Properties\Plugins\PluginPropertyItem ( "export", "import", "transformations" )
+ *
+ * @return string
+ */
+ public function getItemType()
+ {
+ return "export";
+ }
+
+ /**
+ * Gets the force file parameter
+ *
+ * @return bool
+ */
+ public function getForceFile()
+ {
+ return $this->_forceFile;
+ }
+
+ /**
+ * Sets the force file parameter
+ *
+ * @param bool $forceFile the force file parameter
+ *
+ * @return void
+ */
+ public function setForceFile($forceFile)
+ {
+ $this->_forceFile = $forceFile;
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Properties/Plugins/ImportPluginProperties.php b/srcs/phpmyadmin/libraries/classes/Properties/Plugins/ImportPluginProperties.php
new file mode 100644
index 0000000..b270951
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Properties/Plugins/ImportPluginProperties.php
@@ -0,0 +1,33 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Properties class for the import plug-in
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Properties\Plugins;
+
+/**
+ * Defines possible options and getters and setters for them.
+ *
+ * @package PhpMyAdmin
+ */
+class ImportPluginProperties extends PluginPropertyItem
+{
+ /**
+ * Returns the property item type of either an instance of
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyOneItem ( f.e. "bool",
+ * "text", "radio", etc ) or
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyGroup ( "root", "main"
+ * or "subgroup" )
+ * - PhpMyAdmin\Properties\Plugins\PluginPropertyItem ( "export", "import", "transformations" )
+ *
+ * @return string
+ */
+ public function getItemType()
+ {
+ return "import";
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Properties/Plugins/PluginPropertyItem.php b/srcs/phpmyadmin/libraries/classes/Properties/Plugins/PluginPropertyItem.php
new file mode 100644
index 0000000..4d45ab1
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Properties/Plugins/PluginPropertyItem.php
@@ -0,0 +1,177 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * The top-level class of the "Plugin" subtree of the object-oriented
+ * properties system (the other subtree is "Options").
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Properties\Plugins;
+
+use PhpMyAdmin\Properties\Options\Groups\OptionsPropertyRootGroup;
+use PhpMyAdmin\Properties\PropertyItem;
+
+/**
+ * Superclass for
+ * - PhpMyAdmin\Properties\Plugins\ExportPluginProperties,
+ * - PhpMyAdmin\Properties\Plugins\ImportPluginProperties and
+ * - TransformationsPluginProperties
+ *
+ * @package PhpMyAdmin
+ */
+abstract class PluginPropertyItem extends PropertyItem
+{
+ /**
+ * Text
+ *
+ * @var string
+ */
+ private $_text;
+ /**
+ * Extension
+ *
+ * @var string
+ */
+ private $_extension;
+ /**
+ * Options
+ *
+ * @var OptionsPropertyRootGroup
+ */
+ private $_options;
+ /**
+ * Options text
+ *
+ * @var string
+ */
+ private $_optionsText;
+ /**
+ * MIME Type
+ *
+ * @var string
+ */
+ private $_mimeType;
+ /* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */
+
+ /**
+ * Gets the text
+ *
+ * @return string
+ */
+ public function getText()
+ {
+ return $this->_text;
+ }
+
+ /**
+ * Sets the text
+ *
+ * @param string $text text
+ *
+ * @return void
+ */
+ public function setText($text)
+ {
+ $this->_text = $text;
+ }
+
+ /**
+ * Gets the extension
+ *
+ * @return string
+ */
+ public function getExtension()
+ {
+ return $this->_extension;
+ }
+
+ /**
+ * Sets the extension
+ *
+ * @param string $extension extension
+ *
+ * @return void
+ */
+ public function setExtension($extension)
+ {
+ $this->_extension = $extension;
+ }
+
+ /**
+ * Gets the options
+ *
+ * @return OptionsPropertyRootGroup
+ */
+ public function getOptions()
+ {
+ return $this->_options;
+ }
+
+ /**
+ * Sets the options
+ *
+ * @param OptionsPropertyRootGroup $options options
+ *
+ * @return void
+ */
+ public function setOptions($options)
+ {
+ $this->_options = $options;
+ }
+
+ /**
+ * Gets the options text
+ *
+ * @return string
+ */
+ public function getOptionsText()
+ {
+ return $this->_optionsText;
+ }
+
+ /**
+ * Sets the options text
+ *
+ * @param string $optionsText optionsText
+ *
+ * @return void
+ */
+ public function setOptionsText($optionsText)
+ {
+ $this->_optionsText = $optionsText;
+ }
+
+ /**
+ * Gets the MIME type
+ *
+ * @return string
+ */
+ public function getMimeType()
+ {
+ return $this->_mimeType;
+ }
+
+ /**
+ * Sets the MIME type
+ *
+ * @param string $mimeType MIME type
+ *
+ * @return void
+ */
+ public function setMimeType($mimeType)
+ {
+ $this->_mimeType = $mimeType;
+ }
+
+ /**
+ * Returns the property type ( either "options", or "plugin" ).
+ *
+ * @return string
+ */
+ public function getPropertyType()
+ {
+ return "plugin";
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Properties/Plugins/SchemaPluginProperties.php b/srcs/phpmyadmin/libraries/classes/Properties/Plugins/SchemaPluginProperties.php
new file mode 100644
index 0000000..28d187e
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Properties/Plugins/SchemaPluginProperties.php
@@ -0,0 +1,46 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Properties class for the schema export plug-in
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Properties\Plugins;
+
+/**
+ * Defines possible options and getters and setters for them.
+ *
+ * @package PhpMyAdmin
+ */
+class SchemaPluginProperties extends PluginPropertyItem
+{
+ /* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */
+
+ /**
+ * Returns the property item type of either an instance of
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyOneItem ( f.e. "bool",
+ * "text", "radio", etc ) or
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyGroup ( "root", "main"
+ * or "subgroup" )
+ * - PhpMyAdmin\Properties\Plugins\PluginPropertyItem ( "export",
+ * "import", "transformations" )
+ *
+ * @return string
+ */
+ public function getItemType()
+ {
+ return "schema";
+ }
+
+ /**
+ * Gets the force file parameter
+ *
+ * @return bool
+ */
+ public function getForceFile()
+ {
+ return true;
+ }
+}
diff --git a/srcs/phpmyadmin/libraries/classes/Properties/PropertyItem.php b/srcs/phpmyadmin/libraries/classes/Properties/PropertyItem.php
new file mode 100644
index 0000000..b80d62c
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Properties/PropertyItem.php
@@ -0,0 +1,48 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * The top-level class of the object-oriented properties system.
+ *
+ * @package PhpMyAdmin
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Properties;
+
+/**
+ * Provides an interface for Property classes
+ *
+ * @package PhpMyAdmin
+ */
+abstract class PropertyItem
+{
+ /**
+ * Returns the property type ( either "Options", or "Plugin" ).
+ *
+ * @return string
+ */
+ abstract public function getPropertyType();
+
+ /**
+ * Returns the property item type of either an instance of
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyOneItem ( f.e. "bool", "text", "radio", etc ) or
+ * - PhpMyAdmin\Properties\Options\OptionsPropertyGroup ( "root", "main" or "subgroup" )
+ * - PhpMyAdmin\Properties\Plugins\PluginPropertyItem ( "export", "import", "transformations" )
+ *
+ * @return string
+ */
+ abstract public function getItemType();
+
+ /**
+ * Only overwritten in the PhpMyAdmin\Properties\Options\OptionsPropertyGroup class:
+ * Used to tell whether we can use the current item as a group by calling
+ * the addProperty() or removeProperty() methods, which are not available
+ * for simple PhpMyAdmin\Properties\Options\OptionsPropertyOneItem subclasses.
+ *
+ * @return null
+ */
+ public function getGroup()
+ {
+ return null;
+ }
+}