diff options
Diffstat (limited to 'srcs/phpmyadmin/libraries/classes/Properties')
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; + } +} |
