Initial commit

This commit is contained in:
2022-11-21 09:47:28 +01:00
commit 76cec83d26
11652 changed files with 1980467 additions and 0 deletions

View File

@ -0,0 +1,46 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* The top-level class of the object-oriented properties system.
*
* @package PhpMyAdmin
*/
namespace PMA\libraries\properties;
/**
* Provides an interface for Property classes
*
* @package PhpMyAdmin
*/
abstract class PropertyItem
{
/**
* Returns the property type ( either "Options", or "Plugin" ).
*
* @return string
*/
public abstract function getPropertyType();
/**
* Returns the property item type of either an instance of
* - PMA\libraries\properties\options\OptionsPropertyOneItem ( f.e. "bool", "text", "radio", etc ) or
* - PMA\libraries\properties\options\OptionsPropertyGroup ( "root", "main" or "subgroup" )
* - PMA\libraries\properties\plugins\PluginPropertyItem ( "export", "import", "transformations" )
*
* @return string
*/
public abstract function getItemType();
/**
* Only overwritten in the PMA\libraries\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 PMA\libraries\properties\options\OptionsPropertyOneItem subclasses.
*
* @return string
*/
public function getGroup()
{
return null;
}
}

View File

@ -0,0 +1,92 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Superclass for the Property Group classes.
*
* @package PhpMyAdmin
*/
namespace PMA\libraries\properties\options;
/**
* 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
{
/**
* Holds a group of properties (PMA\libraries\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(),
array($property)
);
}
/* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */
/**
* Gets the instance of the class
*
* @return array
*/
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()
{
return count($this->_properties);
}
}

View File

@ -0,0 +1,134 @@
<?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
*/
namespace PMA\libraries\properties\options;
use PMA\libraries\properties\PropertyItem;
/**
* Superclass for
* - PMA\libraries\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";
}
}

View File

@ -0,0 +1,159 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Superclass for the single Property Item classes.
*
* @package PhpMyAdmin
*/
namespace PMA\libraries\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 string
*/
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 string
*/
public function getValues()
{
return $this->_values;
}
/**
* Sets the values
*
* @param array $values values
*
* @return void
*/
public function setValues($values)
{
$this->_values = $values;
}
/**
* Gets MySQL documentation pointer
*
* @return array
*/
public function getDoc()
{
return $this->_doc;
}
/**
* Sets the doc
*
* @param array $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;
}
}

View File

@ -0,0 +1,33 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Holds the PMA\libraries\properties\options\groups\OptionsPropertyMainGroup class
*
* @package PhpMyAdmin
*/
namespace PMA\libraries\properties\options\groups;
use PMA\libraries\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
* - PMA\libraries\properties\options\OptionsPropertyOneItem ( f.e. "bool",
* "text", "radio", etc ) or
* - PMA\libraries\properties\options\OptionsPropertyGroup ( "root", "main"
* or "subgroup" )
* - PMA\libraries\properties\plugins\PluginPropertyItem ( "export", "import", "transformations" )
*
* @return string
*/
public function getItemType()
{
return "main";
}
}

View File

@ -0,0 +1,33 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Holds the PMA\libraries\properties\options\groups\OptionsPropertyRootGroup class
*
* @package PhpMyAdmin
*/
namespace PMA\libraries\properties\options\groups;
use PMA\libraries\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
* - PMA\libraries\properties\options\OptionsPropertyOneItem ( f.e. "bool",
* "text", "radio", etc ) or
* - PMA\libraries\properties\options\OptionsPropertyGroup ( "root", "main"
* or "subgroup" )
* - PMA\libraries\properties\plugins\PluginPropertyItem ( "export", "import", "transformations" )
*
* @return string
*/
public function getItemType()
{
return "root";
}
}

View File

@ -0,0 +1,63 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Holds the PMA\libraries\properties\options\groups\OptionsPropertySubgroup class
*
* @package PhpMyAdmin
*/
namespace PMA\libraries\properties\options\groups;
use PMA\libraries\properties\options\OptionsPropertyGroup;
/**
* Group property item class of type subgroup
*
* @package PhpMyAdmin
*/
class OptionsPropertySubgroup extends OptionsPropertyGroup
{
/**
* Subgroup Header
*
* @var string
*/
private $_subgroupHeader;
/* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */
/**
* Returns the property item type of either an instance of
* - PMA\libraries\properties\options\OptionsPropertyOneItem ( f.e. "bool",
* "text", "radio", etc ) or
* - PMA\libraries\properties\options\OptionsPropertyGroup ( "root", "main"
* or "subgroup" )
* - PMA\libraries\properties\plugins\PluginPropertyItem ( "export", "import", "transformations" )
*
* @return string
*/
public function getItemType()
{
return "subgroup";
}
/**
* Gets the subgroup header
*
* @return \PMA\libraries\properties\PropertyItem
*/
public function getSubgroupHeader()
{
return $this->_subgroupHeader;
}
/**
* Sets the subgroup header
*
* @param \PMA\libraries\properties\PropertyItem $subgroupHeader subgroup header
*
* @return void
*/
public function setSubgroupHeader($subgroupHeader)
{
$this->_subgroupHeader = $subgroupHeader;
}
}

View File

@ -0,0 +1,33 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Holds the PMA\libraries\properties\options\items\BoolPropertyItem class
*
* @package PhpMyAdmin
*/
namespace PMA\libraries\properties\options\items;
use PMA\libraries\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
* - PMA\libraries\properties\options\OptionsPropertyOneItem ( f.e. "bool",
* "text", "radio", etc ) or
* - PMA\libraries\properties\options\OptionsPropertyGroup ( "root", "main"
* or "subgroup" )
* - PMA\libraries\properties\plugins\PluginPropertyItem ( "export", "import", "transformations" )
*
* @return string
*/
public function getItemType()
{
return "bool";
}
}

View File

@ -0,0 +1,33 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Holds the PMA\libraries\properties\options\items\DocPropertyItem class
*
* @package PhpMyAdmin
*/
namespace PMA\libraries\properties\options\items;
use PMA\libraries\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
* - PMA\libraries\properties\options\OptionsPropertyOneItem ( f.e. "bool",
* "text", "radio", etc ) or
* - PMA\libraries\properties\options\OptionsPropertyGroup ( "root", "main"
* or "subgroup" )
* - PMA\libraries\properties\plugins\PluginPropertyItem ( "export", "import", "transformations" )
*
* @return string
*/
public function getItemType()
{
return "doc";
}
}

View File

@ -0,0 +1,33 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Holds the PMA\libraries\properties\options\items\HiddenPropertyItem class
*
* @package PhpMyAdmin
*/
namespace PMA\libraries\properties\options\items;
use PMA\libraries\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
* - PMA\libraries\properties\options\OptionsPropertyOneItem ( f.e. "bool",
* "text", "radio", etc ) or
* - PMA\libraries\properties\options\OptionsPropertyGroup ( "root", "main"
* or "subgroup" )
* - PMA\libraries\properties\plugins\PluginPropertyItem ( "export", "import", "transformations" )
*
* @return string
*/
public function getItemType()
{
return "hidden";
}
}

View File

@ -0,0 +1,33 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Holds the PMA\libraries\properties\options\items\MessageOnlyPropertyItem class
*
* @package PhpMyAdmin
*/
namespace PMA\libraries\properties\options\items;
use PMA\libraries\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
* - PMA\libraries\properties\options\OptionsPropertyOneItem ( f.e. "bool",
* "text", "radio", etc ) or
* - PMA\libraries\properties\options\OptionsPropertyGroup ( "root", "main"
* or "subgroup" )
* - PMA\libraries\properties\plugins\PluginPropertyItem ( "export", "import", "transformations" )
*
* @return string
*/
public function getItemType()
{
return "messageOnly";
}
}

View File

@ -0,0 +1,33 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Holds the PMA\libraries\properties\options\items\TextPropertyItem class
*
* @package PhpMyAdmin
*/
namespace PMA\libraries\properties\options\items;
use PMA\libraries\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
* - PMA\libraries\properties\options\OptionsPropertyOneItem ( f.e. "bool",
* "text", "radio", etc ) or
* - PMA\libraries\properties\options\OptionsPropertyGroup ( "root", "main"
* or "subgroup" )
* - PMA\libraries\properties\plugins\PluginPropertyItem ( "export", "import", "transformations" )
*
* @return string
*/
public function getItemType()
{
return "number";
}
}

View File

@ -0,0 +1,33 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Holds the PMA\libraries\properties\options\items\RadioPropertyItem class
*
* @package PhpMyAdmin
*/
namespace PMA\libraries\properties\options\items;
use PMA\libraries\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
* - PMA\libraries\properties\options\OptionsPropertyOneItem ( f.e. "bool",
* "text", "radio", etc ) or
* - PMA\libraries\properties\options\OptionsPropertyGroup ( "root", "main"
* or "subgroup" )
* - PMA\libraries\properties\plugins\PluginPropertyItem ( "export", "import", "transformations" )
*
* @return string
*/
public function getItemType()
{
return "radio";
}
}

View File

@ -0,0 +1,33 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Holds the PMA\libraries\properties\options\items\SelectPropertyItem class
*
* @package PhpMyAdmin
*/
namespace PMA\libraries\properties\options\items;
use PMA\libraries\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
* - PMA\libraries\properties\options\OptionsPropertyOneItem ( f.e. "bool",
* "text", "radio", etc ) or
* - PMA\libraries\properties\options\OptionsPropertyGroup ( "root", "main"
* or "subgroup" )
* - PMA\libraries\properties\plugins\PluginPropertyItem ( "export", "import", "transformations" )
*
* @return string
*/
public function getItemType()
{
return "select";
}
}

View File

@ -0,0 +1,33 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Holds the PMA\libraries\properties\options\items\TextPropertyItem class
*
* @package PhpMyAdmin
*/
namespace PMA\libraries\properties\options\items;
use PMA\libraries\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
* - PMA\libraries\properties\options\OptionsPropertyOneItem ( f.e. "bool",
* "text", "radio", etc ) or
* - PMA\libraries\properties\options\OptionsPropertyGroup ( "root", "main"
* or "subgroup" )
* - PMA\libraries\properties\plugins\PluginPropertyItem ( "export", "import", "transformations" )
*
* @return string
*/
public function getItemType()
{
return "text";
}
}

View File

@ -0,0 +1,62 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Properties class for the export plug-in
*
* @package PhpMyAdmin
*/
namespace PMA\libraries\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
* - PMA\libraries\properties\options\OptionsPropertyOneItem ( f.e. "bool",
* "text", "radio", etc ) or
* - PMA\libraries\properties\options\OptionsPropertyGroup ( "root", "main"
* or "subgroup" )
* - PMA\libraries\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;
}
}

View File

@ -0,0 +1,31 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Properties class for the import plug-in
*
* @package PhpMyAdmin
*/
namespace PMA\libraries\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
* - PMA\libraries\properties\options\OptionsPropertyOneItem ( f.e. "bool",
* "text", "radio", etc ) or
* - PMA\libraries\properties\options\OptionsPropertyGroup ( "root", "main"
* or "subgroup" )
* - PMA\libraries\properties\plugins\PluginPropertyItem ( "export", "import", "transformations" )
*
* @return string
*/
public function getItemType()
{
return "import";
}
}

View File

@ -0,0 +1,175 @@
<?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
*/
namespace PMA\libraries\properties\plugins;
use PMA\libraries\properties\options\groups\OptionsPropertyRootGroup;
use PMA\libraries\properties\PropertyItem;
/**
* Superclass for
* - PMA\libraries\properties\plugins\ExportPluginProperties,
* - PMA\libraries\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";
}
}

View File

@ -0,0 +1,44 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Properties class for the schema export plug-in
*
* @package PhpMyAdmin
*/
namespace PMA\libraries\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
* - PMA\libraries\properties\options\OptionsPropertyOneItem ( f.e. "bool",
* "text", "radio", etc ) or
* - PMA\libraries\properties\options\OptionsPropertyGroup ( "root", "main"
* or "subgroup" )
* - PMA\libraries\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;
}
}