vendor/symfony/src/Symfony/Component/Locale/Stub/StubCollator.php
changeset 0 7f95f8617b0b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/symfony/src/Symfony/Component/Locale/Stub/StubCollator.php	Sat Sep 24 15:40:41 2011 +0200
@@ -0,0 +1,264 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Locale\Stub;
+
+use Symfony\Component\Locale\Exception\NotImplementedException;
+use Symfony\Component\Locale\Exception\MethodNotImplementedException;
+use Symfony\Component\Locale\Exception\MethodArgumentValueNotImplementedException;
+
+/**
+ * Provides a stub Collator for the 'en' locale.
+ *
+ * @author Igor Wiedler <igor@wiedler.ch>
+ */
+class StubCollator
+{
+    /**
+     * Constants defined by the intl extension, not class constants in IntlDateFormatter
+     * TODO: remove if the Form component drop the call to the intl_is_failure() function
+     *
+     * @see StubIntlDateFormatter::getErrorCode()
+     * @see StubIntlDateFormatter::getErrorMessage()
+     */
+    const U_ZERO_ERROR = 0;
+    const U_ZERO_ERROR_MESSAGE = 'U_ZERO_ERROR';
+
+    /** Attribute constants */
+    const FRENCH_COLLATION = 0;
+    const ALTERNATE_HANDLING = 1;
+    const CASE_FIRST = 2;
+    const CASE_LEVEL = 3;
+    const NORMALIZATION_MODE = 4;
+    const STRENGTH = 5;
+    const HIRAGANA_QUATERNARY_MODE = 6;
+    const NUMERIC_COLLATION = 7;
+
+    /** Attribute constants values */
+    const DEFAULT_VALUE = -1;
+
+    const PRIMARY = 0;
+    const SECONDARY = 1;
+    const TERTIARY = 2;
+    const DEFAULT_STRENGTH = 2;
+    const QUATERNARY = 3;
+    const IDENTICAL = 15;
+
+    const OFF = 16;
+    const ON = 17;
+
+    const SHIFTED = 20;
+    const NON_IGNORABLE = 21;
+
+    const LOWER_FIRST = 24;
+    const UPPER_FIRST = 25;
+
+    /** Sorting options */
+    const SORT_REGULAR = 0;
+    const SORT_NUMERIC = 2;
+    const SORT_STRING = 1;
+
+    /**
+     * Constructor
+     *
+     * @param  string  $locale   The locale code
+     * @throws MethodArgumentValueNotImplementedException  When $locale different than 'en' is passed
+     */
+    public function __construct($locale)
+    {
+        if ('en' != $locale) {
+            throw new MethodArgumentValueNotImplementedException(__METHOD__, 'locale', $locale, 'Only the \'en\' locale is supported');
+        }
+    }
+
+    /**
+     * Static constructor
+     *
+     * @param  string  $locale   The locale code
+     * @throws MethodArgumentValueNotImplementedException  When $locale different than 'en' is passed
+     */
+    static public function create($locale)
+    {
+        return new self($locale);
+    }
+
+    /**
+     * Sort array maintaining index association
+     *
+     * @param  array  &$array    Input array
+     * @param  array  $sortFlag  Flags for sorting, can be one of the following:
+     *                           StubCollator::SORT_REGULAR - compare items normally (don't change types)
+     *                           StubCollator::SORT_NUMERIC - compare items numerically
+     *                           StubCollator::SORT_STRING - compare items as strings
+     * @return Boolean           True on success or false on failure
+     */
+    public function asort(&$array, $sortFlag = self::SORT_REGULAR)
+    {
+        $intlToPlainFlagMap = array(
+            self::SORT_REGULAR => \SORT_REGULAR,
+            self::SORT_NUMERIC => \SORT_NUMERIC,
+            self::SORT_STRING  => \SORT_STRING,
+        );
+
+        $plainSortFlag = isset($intlToPlainFlagMap[$sortFlag]) ? $intlToPlainFlagMap[$sortFlag] : self::SORT_REGULAR;
+
+        return asort($array, $plainSortFlag);
+    }
+
+    /**
+     * Compare two Unicode strings
+     *
+     * @param  string  $str1   The first string to compare
+     * @param  string  $str2   The second string to compare
+     * @return Boolean|int     Return the comparison result or false on failure:
+     *                         1 if $str1 is greater than $str2
+     *                         0 if $str1 is equal than $str2
+     *                         -1 if $str1 is less than $str2
+     * @see    http://www.php.net/manual/en/collator.compare.php
+     * @throws MethodNotImplementedException
+     */
+    public function compare($str1, $str2)
+    {
+        throw new MethodNotImplementedException(__METHOD__);
+    }
+
+    /**
+     * Get a value of an integer collator attribute
+     *
+     * @param  int   $attr   An attribute specifier, one of the attribute constants
+     * @return Boolean|int   The attribute value on success or false on error
+     * @see    http://www.php.net/manual/en/collator.getattribute.php
+     * @throws MethodNotImplementedException
+     */
+    public function getAttribute($attr)
+    {
+        throw new MethodNotImplementedException(__METHOD__);
+    }
+
+    /**
+     * Returns collator's last error code. Always returns the U_ZERO_ERROR class constant value
+     *
+     * @return int  The error code from last collator call
+     */
+    public function getErrorCode()
+    {
+        return self::U_ZERO_ERROR;
+    }
+
+    /**
+     * Returns collator's last error message. Always returns the U_ZERO_ERROR_MESSAGE class constant value
+     *
+     * @return string  The error message from last collator call
+     */
+    public function getErrorMessage()
+    {
+        return self::U_ZERO_ERROR_MESSAGE;
+    }
+
+    /**
+     * Returns the collator's locale
+     *
+     * @param  int      $type     The locale name type to return between valid or actual (StubLocale::VALID_LOCALE or StubLocale::ACTUAL_LOCALE, respectively)
+     * @return string             The locale name used to create the collator
+     */
+    public function getLocale($type = StubLocale::ACTUAL_LOCALE)
+    {
+        return 'en';
+    }
+
+    /**
+     * Get sorting key for a string
+     *
+     * @param  string   $string   The string to produce the key from
+     * @return string             The collation key for $string
+     * @see    http://www.php.net/manual/en/collator.getsortkey.php
+     * @throws MethodNotImplementedException
+     */
+    public function getSortKey($string)
+    {
+        throw new MethodNotImplementedException(__METHOD__);
+    }
+
+    /**
+     * Get current collator's strength
+     *
+     * @return Boolean|int   The current collator's strength or false on failure
+     * @see    http://www.php.net/manual/en/collator.getstrength.php
+     * @throws MethodNotImplementedException
+     */
+    public function getStrength()
+    {
+        throw new MethodNotImplementedException(__METHOD__);
+    }
+
+    /**
+     * Set a collator's attribute
+     *
+     * @param  int   $attr   An attribute specifier, one of the attribute constants
+     * @param  int   $val    The attribute value, one of the attribute value constants
+     * @return Boolean       True on success or false on failure
+     * @see    http://www.php.net/manual/en/collator.setattribute.php
+     * @throws MethodNotImplementedException
+     */
+    public function setAttribute($attr, $val)
+    {
+        throw new MethodNotImplementedException(__METHOD__);
+    }
+
+    /**
+     * Set the collator's strength
+     *
+     * @param  int    $strength  Strength to set, possible values:
+     *                           StubCollator::PRIMARY
+     *                           StubCollator::SECONDARY
+     *                           StubCollator::TERTIARY
+     *                           StubCollator::QUATERNARY
+     *                           StubCollator::IDENTICAL
+     *                           StubCollator::DEFAULT
+     * @return Boolean           True on success or false on failure
+     * @see    http://www.php.net/manual/en/collator.setstrength.php
+     * @throws MethodNotImplementedException
+     */
+    public function setStrength($strength)
+    {
+        throw new MethodNotImplementedException(__METHOD__);
+    }
+
+    /**
+     * Sort array using specified collator and sort keys
+     *
+     * @param  array   &$arr   Array of strings to sort
+     * @return Boolean         True on success or false on failure
+     * @see    http://www.php.net/manual/en/collator.sortwithsortkeys.php
+     * @throws MethodNotImplementedException
+     */
+    public function sortWithSortKeys(&$arr)
+    {
+        throw new MethodNotImplementedException(__METHOD__);
+    }
+
+    /**
+     * Sort array using specified collator
+     *
+     * @param  array   &$arr       Array of string to sort
+     * @param  int     $sortFlag   Optional sorting type, one of the following:
+     *                             StubCollator::SORT_REGULAR
+     *                             StubCollator::SORT_NUMERIC
+     *                             StubCollator::SORT_STRING
+     * @return Boolean             True on success or false on failure
+     * @see    http://www.php.net/manual/en/collator.sort.php
+     * @throws MethodNotImplementedException
+     */
+    public function sort(&$arr, $sortFlag = self::SORT_REGULAR)
+    {
+        throw new MethodNotImplementedException(__METHOD__);
+    }
+}