WikidataBuilder has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/258431

Change subject: New Wikidata Build - 2015-12-11T10:00:01+0000
......................................................................

New Wikidata Build - 2015-12-11T10:00:01+0000

Change-Id: I373391fe7aa79896a38f9adda3c9847a14c0841f
---
M composer.lock
M extensions/Wikibase/README.md
M extensions/Wikibase/client/i18n/lki.json
M extensions/Wikibase/client/i18n/ru.json
M extensions/Wikibase/lib/i18n/lki.json
D 
extensions/Wikibase/lib/resources/jquery.wikibase/themes/default/images/tipsy.png
M 
extensions/Wikibase/lib/resources/jquery.wikibase/themes/default/jquery.wikibase.wbtooltip.css
M extensions/Wikibase/repo/config/Wikibase.default.php
M extensions/Wikibase/repo/i18n/ckb.json
M extensions/Wikibase/repo/i18n/gl.json
M extensions/Wikibase/repo/i18n/lki.json
A extensions/Wikibase/repo/includes/DispatchingEntityTypeStatementGrouper.php
A extensions/Wikibase/repo/includes/StatementGrouperBuilder.php
D extensions/Wikibase/repo/includes/StatementGrouperFactory.php
M extensions/Wikibase/repo/includes/WikibaseRepo.php
A 
extensions/Wikibase/repo/tests/phpunit/includes/DispatchingEntityTypeStatementGrouperTest.php
A 
extensions/Wikibase/repo/tests/phpunit/includes/StatementGrouperBuilderTest.php
M 
extensions/Wikibase/repo/tests/phpunit/includes/Validators/LabelUniquenessValidatorTest.php
M extensions/Wikibase/view/resources/wikibase/wikibase.css
M extensions/Wikibase/view/src/EntityViewFactory.php
M extensions/Wikibase/view/tests/phpunit/EntityViewFactoryTest.php
M vendor/composer/autoload_classmap.php
M vendor/composer/installed.json
23 files changed, 573 insertions(+), 88 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikidata 
refs/changes/31/258431/1

diff --git a/composer.lock b/composer.lock
index 02cfe27..e178d88 100644
--- a/composer.lock
+++ b/composer.lock
@@ -1448,12 +1448,12 @@
             "source": {
                 "type": "git",
                 "url": 
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git";,
-                "reference": "cb21dcb4e8691ee3aa4c3c40b7832e48d2286516"
+                "reference": "4a50981973f59459fb214cf5c99a216d13d749a8"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/cb21dcb4e8691ee3aa4c3c40b7832e48d2286516";,
-                "reference": "cb21dcb4e8691ee3aa4c3c40b7832e48d2286516",
+                "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/4a50981973f59459fb214cf5c99a216d13d749a8";,
+                "reference": "4a50981973f59459fb214cf5c99a216d13d749a8",
                 "shasum": ""
             },
             "require": {
@@ -1524,7 +1524,7 @@
                 "wikibaserepo",
                 "wikidata"
             ],
-            "time": "2015-12-09 22:19:02"
+            "time": "2015-12-10 22:02:00"
         },
         {
             "name": "wikibase/wikimedia-badges",
diff --git a/extensions/Wikibase/README.md b/extensions/Wikibase/README.md
index 52f6679..6a9cf38 100644
--- a/extensions/Wikibase/README.md
+++ b/extensions/Wikibase/README.md
@@ -18,7 +18,7 @@
 in MediaWiki.
 
 The repo is the extension for the repository. It allows the creation and 
maintenance of structured
-data. This is being used on [wikidata.org](https://www.wikidata.org)  .
+data. This is being used on [wikidata.org](https://www.wikidata.org).
 
 The client is the extension for the client. It allows several MediaWiki 
instances to use data provided
 by a Wikidata instance. Usually, you would not use them in a single wiki. This 
is being used on the
@@ -36,7 +36,7 @@
 * WikibaseLib (in the subdirectory lib)
 * Wikibase Client (in the subdirectory client)
 
-If you are running Wikibase with hhvm, you need to enable [zend 
compat](http://docs.hhvm.com/manual/en/configuration.zend.compat.php)
+If you are running Wikibase with hhvm, you need to enable [zend 
compat](http://docs.hhvm.com/hhvm/configuration/INI-settings#feature-flags)
 in your php.ini:
 
 ```
@@ -60,6 +60,6 @@
 ## The Wikibase software
 
 These extensions are part of the [Wikibase software](http://wikiba.se/) 
created by the Wikidata team
-for the [Wikidata project](https://meta.wikimedia.org/wiki/Wikidata).
+for the [Wikidata 
project](https://meta.wikimedia.org/wiki/Special:MyLanguage/Wikidata).
 
-The Wikidata project uses the Wikibase software on its [wikidata.org 
website](https://www.wikidata.org).
+The Wikidata project uses the Wikibase software on [its 
website](https://www.wikidata.org).
\ No newline at end of file
diff --git a/extensions/Wikibase/client/i18n/lki.json 
b/extensions/Wikibase/client/i18n/lki.json
index 49d10f4..c85626e 100644
--- a/extensions/Wikibase/client/i18n/lki.json
+++ b/extensions/Wikibase/client/i18n/lki.json
@@ -1,18 +1,21 @@
 {
        "@metadata": {
                "authors": [
-                       "Hosseinblue"
+                       "Hosseinblue",
+                       "Arash71",
+                       "Lakzon"
                ]
        },
        "tooltip-t-wikibase": "پیوۀند وۀآیتم چۀسبیا/متصل و ژیرۀ/مخزن داده",
+       "apihelp-query+pageterms-param-terms": "نوع اصطلاح‌ها برای دریافت مانند 
«توضیحات». اگر مشخص نشده باشد، همهٔ نوع‌ها بازگشت داده می‌شود.",
        "wikibase-comment-update": "مورد {{WBREPONAME}} تغییر کرد",
        "wikibase-dataitem": "{{WBREPONAME}} آیتم",
-       "wikibase-editlinks": "دۀسکاری پیوۀندۀل",
+       "wikibase-editlinks": "دةسکاری پیوةندةل",
        "wikibase-editlinkstitle": "دۀسکاری پیوندۀل میان‌ویکی",
        "wikibase-rc-hide-wikidata": "$1 {{WBREPONAME}}",
        "wikibase-rc-hide-wikidata-hide": "ئآشاردن-پنهان کردن",
        "wikibase-rc-hide-wikidata-show": "نیشان دائن",
        "wikibase-rc-wikibase-edit-letter": "د",
-       "wikibase-rc-wikibase-edit-title": "{{WBREPONAME}} دۀسکاری",
+       "wikibase-rc-wikibase-edit-title": "{{WBREPONAME}} دةسکاری",
        "wikibase-otherprojects": "پروژۀلئ تر"
 }
diff --git a/extensions/Wikibase/client/i18n/ru.json 
b/extensions/Wikibase/client/i18n/ru.json
index 73ce55e..0156c13 100644
--- a/extensions/Wikibase/client/i18n/ru.json
+++ b/extensions/Wikibase/client/i18n/ru.json
@@ -18,6 +18,7 @@
        "wikibase-client-desc": "Клиент для расширения Wikibase",
        "tooltip-t-wikibase": "Ссылка на связанный элемент репозитория данных",
        "apihelp-query+pageterms-example-label-en": "Получить метки и синонимы, 
связанные с английской страницей «London»",
+       "apihelp-query+pageterms-example-item": "Получить обозначения и 
псевдонимы элемента Q84.",
        "wikibase-after-page-move": "Чтобы исправить на переименованной 
странице языковые ссылки, вы можете также [$1  обновить] связанный элемент 
{{grammar:genitive|{{WBREPONAME}}}}.",
        "wikibase-after-page-move-queued": "Связанный с этой страницей [$1 
элемент {{grammar:genitive|{{WBREPONAME}}}}] будет автоматически обновлён. 
Обратите внимание, что это не может произойти мгновенно.",
        "wikibase-after-page-delete-queued": "Связанный с этой страницей [$1 
элемент {{grammar:genitive|{{WBREPONAME}}}}] будет автоматически обновлён. 
Обратите внимание, что это не может произойти мгновенно.",
@@ -49,6 +50,7 @@
        "wikibase-linkitem-not-loggedin-title": "Вы должны авторизоваться",
        "wikibase-linkitem-not-loggedin": "Чтобы воспользоваться этой функцией, 
вы должны быть авторизованы в этой вики и в [$1 центральном репозитории 
данных].",
        "wikibase-linkitem-success-link": "Страницы были успешно связаны. 
Элемент, содержащий связи, находится в нашем [$1 центральном хранилище 
данных].",
+       "wikibase-limitreport-entities-accessed": "Количество загруженных 
сущностей Викибазы",
        "wikibase-property-notfound": "Свойство «$1» не найдено",
        "wikibase-rc-hide-wikidata": "$1 {{WBREPONAME}}",
        "wikibase-rc-hide-wikidata-hide": "Скрыть",
diff --git a/extensions/Wikibase/lib/i18n/lki.json 
b/extensions/Wikibase/lib/i18n/lki.json
index 0f616c4..bafde11 100644
--- a/extensions/Wikibase/lib/i18n/lki.json
+++ b/extensions/Wikibase/lib/i18n/lki.json
@@ -1,8 +1,13 @@
 {
        "@metadata": {
                "authors": [
-                       "Hosseinblue"
+                       "Hosseinblue",
+                       "Lakzon"
                ]
        },
-       "wikibase-sitelinks-wikipedia": "ویکی پدیا"
+       "wikibase-sitelinks-wikipedia": "ویکی پدیا",
+       "wikibase-entity-summary-wbsetdescription-add": "توضیحات [$2] افزوده 
شد",
+       "wikibase-entity-summary-wbsetdescription-set": "تغییر توضیحات [$2]",
+       "wikibase-entity-summary-wbsetdescription-remove": "حذف توضیحات [$2]",
+       "wikibase-entity-summary-wbsetlabeldescriptionaliases": "[$2] برچسب، 
شرح و نام‌های مستعار تغییر یافت"
 }
diff --git 
a/extensions/Wikibase/lib/resources/jquery.wikibase/themes/default/images/tipsy.png
 
b/extensions/Wikibase/lib/resources/jquery.wikibase/themes/default/images/tipsy.png
deleted file mode 100644
index 3aa168e..0000000
--- 
a/extensions/Wikibase/lib/resources/jquery.wikibase/themes/default/images/tipsy.png
+++ /dev/null
Binary files differ
diff --git 
a/extensions/Wikibase/lib/resources/jquery.wikibase/themes/default/jquery.wikibase.wbtooltip.css
 
b/extensions/Wikibase/lib/resources/jquery.wikibase/themes/default/jquery.wikibase.wbtooltip.css
index 47bee02..0b51863 100644
--- 
a/extensions/Wikibase/lib/resources/jquery.wikibase/themes/default/jquery.wikibase.wbtooltip.css
+++ 
b/extensions/Wikibase/lib/resources/jquery.wikibase/themes/default/jquery.wikibase.wbtooltip.css
@@ -5,20 +5,11 @@
  * @author H. Snater < mediaw...@snater.com >
  */
 
-/* FIXME: We can remove the following two blocks and delete the image 30 days 
after the outdated
-tipsy styles in shared.css are removed and we want to remove the blue color 
from our tooltips. */
-.wikibase-wbtooltip-tip .tipsy-inner {
-       background-color: #d6f3ff;
-       border-color: #5dc9f4;
+/* FIXME: Remove when core's jquery.tipsy.css is fixed. */
+.wikibase-wbtooltip-tip.tipsy-nw .tipsy-arrow,
+.wikibase-wbtooltip-tip.tipsy-ne .tipsy-arrow {
+       top: 0;
 }
-.wikibase-wbtooltip-tip .tipsy-arrow {
-       /* @embed */
-       background-image: url(images/tipsy.png);
-       /* FIXME: Remove 30 days after the outdated tipsy-arrow style in 
shared.css is removed */
-       height: 6px;
-}
-
-/***** ERROR TOOLTIP *****/
 
 .wikibase-wbtooltip-tip.wb-error .tipsy-arrow {
        /* @embed */
@@ -32,5 +23,3 @@
        background: #FFDFC9;
        border-color: #B27631;
 }
-
-/***** /ERROR TOOLTIP *****/
diff --git a/extensions/Wikibase/repo/config/Wikibase.default.php 
b/extensions/Wikibase/repo/config/Wikibase.default.php
index fe30007..9ea5850 100644
--- a/extensions/Wikibase/repo/config/Wikibase.default.php
+++ b/extensions/Wikibase/repo/config/Wikibase.default.php
@@ -27,6 +27,9 @@
 
                'entityNamespaces' => array(),
 
+               // See StatementGrouperBuilder for an example.
+               'statementSections' => array(),
+
                // Define constraints for multilingual terms (such as labels, 
descriptions and aliases).
                'multilang-limits' => array(
                        'length' => 250, // length constraint
diff --git a/extensions/Wikibase/repo/i18n/ckb.json 
b/extensions/Wikibase/repo/i18n/ckb.json
index 08659c7..4339da6 100644
--- a/extensions/Wikibase/repo/i18n/ckb.json
+++ b/extensions/Wikibase/repo/i18n/ckb.json
@@ -29,8 +29,9 @@
        "wikibase-alias-edit-placeholder": "نازناوێک بنووسە",
        "wikibase-label-input-help-message": "سەردێڕی ئەم دراوەیە بە $1 
بنووسە.",
        "wikibase-description-input-help-message": "شیکردنەوەیەکی کورت بە $1 
بنووسە.",
-       "wikibase-statements": "ئاخاوتەکان",
+       "wikibase-statementsection-statements": "ئاخاوتەکان",
        "wikibase-sitelinks": "پێرستی پەڕە بەسراوەکان بەم بەندەوە",
+       "wikibase-sitelinks-special": "ماڵپەڕەکانی تر",
        "wikibase-remove": "سڕینەوە",
        "wikibase-propertyedittool-counter-entrieslabel": 
"{{PLURAL:$1|نێوانویکی}}",
        "wikibase-disambiguation-title": "ڕوونکردنەوە بۆ «$1»",
diff --git a/extensions/Wikibase/repo/i18n/gl.json 
b/extensions/Wikibase/repo/i18n/gl.json
index fc52864..6134d05 100644
--- a/extensions/Wikibase/repo/i18n/gl.json
+++ b/extensions/Wikibase/repo/i18n/gl.json
@@ -361,6 +361,8 @@
        "apihelp-wbeditentity-example-8": "Crea unha nova afirmación no 
elemento para a propiedade P56 e o valor de \"ExampleString\" 
(\"Exemplodecadeadetexto\")",
        "apihelp-wbeditentity-example-9": "Elimina as afirmación do elemento 
cos GUIDs Q42$D8404CDA-25E4-4334-AF13-A3290BCD9C0F e 
Q42$GH678DSA-01PQ-28XC-HJ90-DDFD9990126X",
        "apihelp-wbeditentity-example-10": "Fixa a afirmación co GUID ó valor 
da afirmación",
+       "apihelp-wbeditentity-example-11": "Engade unha etiqueta sen 
sobreescribila se xa existe",
+       "apihelp-wbeditentity-example-12": "Elimina unha etiqueta",
        "apihelp-wbformatvalue-description": "Formatos de valores de datas.",
        "apihelp-wbformatvalue-param-generate": "Formato de saída desexado para 
xenerar.",
        "apihelp-wbformatvalue-param-datatype": "O tipo de dato do valor. Isto 
é diferente do tipo do valor",
diff --git a/extensions/Wikibase/repo/i18n/lki.json 
b/extensions/Wikibase/repo/i18n/lki.json
index 8585ed5..6136054 100644
--- a/extensions/Wikibase/repo/i18n/lki.json
+++ b/extensions/Wikibase/repo/i18n/lki.json
@@ -1,15 +1,55 @@
 {
        "@metadata": {
                "authors": [
-                       "Hosseinblue"
+                       "Hosseinblue",
+                       "Arash71",
+                       "Lakzon"
                ]
        },
-       "wikibase-edit": "دۀسکاری",
+       "wikibase-edit": "دةسکاری",
        "wikibase-add": "اضافۀکردن",
+       "wikibase-entitytermsforlanguagelistview-description": "توضیحةل",
+       "wikibase-entitytermsforlanguagelistview-label": "برچسب",
        "wikibase-label-empty": "هیچ نام مستعاری تعریف نشده است",
        "wikibase-description-empty": "توضیحاتی تعریف نشده است.",
+       "wikibase-description-edit-placeholder": "واردکردن توضیحات",
+       "wikibase-diffview-label": "برچسب",
+       "wikibase-description-input-help-message": "توضیحات کوتاهی به $1 برای 
این موجودیت وارد کنید.",
        "wikibase-sitelinks-special": "سایتۀلئ تر",
        "wikibase-aliases-empty": "هیچ نام مستعاری تعریف نشده است",
        "wikibase-statementview-rank-normal": "رتبه معمولی",
-       "wikibase-statementview-referencesheading-pendingcountersubject": 
"{{PLURAL:$1|منبع|منابع}}"
+       "wikibase-statementview-referencesheading-pendingcountersubject": 
"{{PLURAL:$1|منبع|منابع}}",
+       "wikibase-validator-label-with-description-conflict": "آیتم $3 از قبل 
دارای نام «$1» با توضیحات متنی مشابه مربوط به کد زبان «$2» است",
+       "wikibase-newproperty-summary": "مطمئن شوید که 
[[Special:PropertyDisambiguation|خصوصیت مربوطه از قبل وجود دارد]]! <br /> شما 
باید یک [[Help:Label|برچسب]] و یک [[Help:Description|توضیح]] برای همهٔ 
خصوصیت‌های تازه ایجاد کنید. به همراه نوع داده قابل قبول خصوصیت.",
+       "wikibase-newitem-summary": "مطمئن شوید که [[Special:ItemByTitle|اگر 
آیتم مربوطه از قبل وجود داشته باشد]]!<br /> شما باید یک [[Help:Label|برچسب]] و 
[[Help:Description|توضیح]] برای همهٔ آیتم‌های تازه ایجاد کنید.",
+       "wikibase-newentity-label": "نام:",
+       "wikibase-newentity-description": ":توضیحۀل",
+       "wikibase-setlabel-label": "برچسب:",
+       "wikibase-setlabel-submit": "گذاشتن نام",
+       "special-setdescription": "ثبت یک توضیح",
+       "wikibase-setdescription-introfull": "شما در حال ثبت توضیح موجود در $2 
برای [[$1]] هستید.",
+       "wikibase-setdescription-label": ":توضیحۀل",
+       "wikibase-setdescription-submit": "ثبت توضیحات",
+       "special-setlabeldescriptionaliases": "تنظیم برچسب، شرح و نام‌های 
مستعار",
+       "wikibase-setlabeldescriptionaliases-introfull": "شما در حال تنظیم کردن 
برچسب، توضیحات و نام‌های مستعار برای [[$1]] در $2 هستید. چند نام مستعار با 
نویسه‌های لوله‌ای (<code>|<code>) جدا شده‌اند.",
+       "wikibase-setlabeldescriptionaliases-intro": "در این فرم می‌توانید 
برچسب، توضیحات و نام‌های مستعار مربوط به جوهره مورد نظر را وارد کنید. پیش از هر 
چیز باید یک شناسه برای جوهره انتخاب کنید (مثل \"Q23\") و کد زبان (مثل \"fa\") 
را مشخص کنید.",
+       "wikibase-setlabeldescriptionaliases-description-label": ":توضیحۀل",
+       "wikibase-setlabeldescriptionaliases-submit": "برچسب، شرح و نام‌های 
مستعار را وارد کنید",
+       "special-entitieswithoutdescription": "جوهره‌های بدون توضیحات",
+       "wikibase-entitieswithoutdescription-legend": "فهرست جوهره‌های بدون 
توضیحات را دریافت کنید",
+       "wikibase-listdatatypes-globe-coordinate-body": "داده حروفی برای مکان 
جغرافیایی یک جرم درخشان آسمانی که به صورت طول جغرافیایی-عرض جغرافیایی بر حسب 
درجه یا بوسیله سامانه‌های زئومتریک بیان می‌شود.\n* عرض جغرافیایی - بخش اول 
مقدار داده که به صورت یک رشته و بر حسب (شناوری در هوا، درجه-دقیقه-ثانیه، 
درجه-دقیقه، درجه-درجه) بیان شده و جهت آن با یک حرف مخفف (شمالی/جنوبی) مشخص می 
شود\n* طول جغرافیایی - بخش دوم مقدار داده که به صورت یک رشته و بر حسب (شناوری 
در هوا، درجه-دقیقه-ثانیه، درجه-دقیقه، درجه-درجه) بیان شده و جهت آن با یک حرف 
مخفف (خاوری/باختریی) مشخص می شود\n* ارتفاع(اختیاری) - مقدار مشخص (؟) ارتفاع از 
سطح مرجع، برای کرهٔ «زمین» که کرهٔ مرجع آن \"WGS84\" است\n* کره(اختیاری) - 
مقداری مشخص(؟)که بر حسب جسم آسمانی تعیین شده، به صورت پیشفرض کره «زمین» و 
\"WGS84\" است",
+       "wikibase-listdatatypes-quantity-body": "زمینه داده های حروفی برای یک 
کمیت که به یک نوع یکای دقیق مربوط می شود. یکا، در واقع با مقدار وارد شده همراه 
می آید.\n* مقدار - بخشی نامعلوم از رشته(اندازه‌گیری شده با پیشوندی نامعلوم)\n* 
واحد – ضمنی بخشی از رشته که به صورت پیش فرض به \"1\" (نقشه برداری به استاندارد 
بدن معلوم است)\n * upperbound - مقدار در بالا محدود\n * lowerbound - مقدار در 
حد پایین",
+       "apihelp-wbeditentity-param-site": "شناسۀ وبگاهی که صفحه در آن وجود 
دارد.\nبه همراه «عنوان» استفاده کنید تا تشکیل یک پیونداد کامل دهد.",
+       "apihelp-wbeditentity-param-clear": "اگر قرار داده شود قبل از جلو رفتن 
کل جوهره خالی می‌شود. پیش از آنکه داده‌ها کامل پر شوند، امکان ذخیزه جوهره وجود 
نخواهد داشت.",
+       "apihelp-wbeditentity-example-7": "توضیحاتی برای nb قرار می‌دهد و در 
صورتی که قبلا یکی وجود داشته باشد دوباره روی آن می‌نویسد",
+       "apihelp-wblinktitles-param-tosite": "شناسۀ وبگاهی که صفحه در آن وجود 
دارد.\nهمراه با «به‌عنوان» استفاده کنید تا تشکیل یک پیونداد کامل دهد.",
+       "apihelp-wblinktitles-param-totitle": "عنوان صفحه که با آن مطابقت 
دارد.\nهمراه با «به‌وبگاه» استفاده کنید تا تشکیل یک پیونداد کامل دهد.",
+       "apihelp-wbsetdescription-description": "برای یک جوهره ویکی‌بیس که 
منفرد باشد یک توضیحات قرار می‌دهد",
+       "apihelp-wbsetdescription-param-title": "عنوان صفحه که با آن مطابقت 
دارد.\nهمراه با «وبگاه» استفاده کنید تا تشکیل یک پیونداد کامل دهد.",
+       "apihelp-wbsetdescription-param-language": "زوون توضیحةل",
+       "apihelp-wbsetdescription-param-value": "مقدار برای تنظیم توضیحات",
+       "apihelp-wbsetdescription-example-1": "برای صفحه‌ای با شناسۀ Q42 یک 
توضیحات به زبان انگلیسی به صورت رشته «An encyclopedia that everyone can edit» 
قرار می‌دهد",
+       "apihelp-wbsetdescription-example-2": "برای صفحه‌ای با پیونداد 
enwiki:Wikipedia یک توضیحات به زبان انگلیسی به صورت رشته «An encyclopedia that 
everyone can edit» قرار می‌دهد",
+       "apihelp-wbsetlabel-param-site": "شناسۀ وبگاهی که صفحه در آن وجود 
دارد.\nبه همراه «عنوان» استفاده کنید تا تشکیل یک پیونداد کامل دهد.",
+       "apihelp-wbsetlabel-param-title": "عنوان صفحه که با آن مطابقت 
دارد.\nهمراه با «وبگاه» استفاده کنید تا تشکیل یک پیونداد کامل دهد."
 }
diff --git 
a/extensions/Wikibase/repo/includes/DispatchingEntityTypeStatementGrouper.php 
b/extensions/Wikibase/repo/includes/DispatchingEntityTypeStatementGrouper.php
new file mode 100644
index 0000000..5f2562c
--- /dev/null
+++ 
b/extensions/Wikibase/repo/includes/DispatchingEntityTypeStatementGrouper.php
@@ -0,0 +1,96 @@
+<?php
+
+namespace Wikibase\Repo;
+
+use InvalidArgumentException;
+use Wikibase\DataModel\Entity\BasicEntityIdParser;
+use Wikibase\DataModel\Services\Statement\Grouper\NullStatementGrouper;
+use Wikibase\DataModel\Services\Statement\Grouper\StatementGrouper;
+use Wikibase\DataModel\Services\Statement\StatementGuidParser;
+use Wikibase\DataModel\Services\Statement\StatementGuidParsingException;
+use Wikibase\DataModel\Statement\Statement;
+use Wikibase\DataModel\Statement\StatementList;
+
+/**
+ * @since 0.5
+ *
+ * @license GNU GPL v2+
+ * @author Thiemo Mättig
+ */
+class DispatchingEntityTypeStatementGrouper implements StatementGrouper {
+
+       /**
+        * @var StatementGrouper[]
+        */
+       private $statementGroupers = array();
+
+       /**
+        * @var StatementGuidParser
+        */
+       private $guidParser;
+
+       /**
+        * @param StatementGrouper[] $statementGroupers An associative array, 
mapping entity types
+        *  (typically "item" and "property") to StatementGrouper objects.
+        *
+        * @throws InvalidArgumentException
+        */
+       public function __construct( array $statementGroupers ) {
+               foreach ( $statementGroupers as $key => $grouper ) {
+                       if ( !is_string( $key ) || !( $grouper instanceof 
StatementGrouper ) ) {
+                               throw new InvalidArgumentException(
+                                       '$statementGroupers must map strings to 
StatementGroupers'
+                               );
+                       }
+                       $this->statementGroupers[$key] = $grouper;
+               }
+
+               // TODO: Inject?
+               $this->guidParser = new StatementGuidParser( new 
BasicEntityIdParser() );
+       }
+
+       /**
+        * @param StatementList $statements
+        *
+        * @return StatementList[]
+        */
+       public function groupStatements( StatementList $statements ) {
+               return $this->guessStatementGrouper( $statements 
)->groupStatements( $statements );
+       }
+
+       /**
+        * @param StatementList $statements
+        *
+        * @return StatementGrouper
+        */
+       private function guessStatementGrouper( StatementList $statements ) {
+               foreach ( $statements->toArray() as $statement ) {
+                       $entityType = $this->getEntityType( $statement );
+
+                       if ( array_key_exists( $entityType, 
$this->statementGroupers ) ) {
+                               return $this->statementGroupers[$entityType];
+                       }
+
+                       // FIXME: Check all statements and fail if they don't 
share the same entity type?
+               }
+
+               return new NullStatementGrouper();
+       }
+
+       /**
+        * @param Statement $statement
+        *
+        * @return string|null
+        */
+       private function getEntityType( Statement $statement ) {
+               try {
+                       $guid = $this->guidParser->parse( $statement->getGuid() 
);
+               } catch ( StatementGuidParsingException $ex ) {
+                       // FIXME: Fail when there is a statement with no GUID?
+                       return null;
+               }
+
+               return $guid->getEntityId()->getEntityType();
+       }
+
+}
diff --git a/extensions/Wikibase/repo/includes/StatementGrouperBuilder.php 
b/extensions/Wikibase/repo/includes/StatementGrouperBuilder.php
new file mode 100644
index 0000000..0b399e4
--- /dev/null
+++ b/extensions/Wikibase/repo/includes/StatementGrouperBuilder.php
@@ -0,0 +1,136 @@
+<?php
+
+namespace Wikibase\Repo;
+
+use InvalidArgumentException;
+use Wikibase\DataModel\Services\Lookup\PropertyDataTypeLookup;
+use Wikibase\DataModel\Services\Statement\Filter\DataTypeStatementFilter;
+use Wikibase\DataModel\Services\Statement\Filter\NullStatementFilter;
+use Wikibase\DataModel\Services\Statement\Filter\PropertySetStatementFilter;
+use Wikibase\DataModel\Services\Statement\Grouper\FilteringStatementGrouper;
+use Wikibase\DataModel\Services\Statement\Grouper\NullStatementGrouper;
+use Wikibase\DataModel\Services\Statement\Grouper\StatementGrouper;
+use Wikibase\DataModel\Statement\StatementFilter;
+
+/**
+ * Factory for a StatementGrouper. The grouper is instantiated based on a 
specification array that
+ * has the following form:
+ *
+ * array(
+ *     'item' => array(
+ *         'statements' => null,
+ *         'example' => array(
+ *             'type' => 'propertySet',
+ *             'propertyIds' => array( 'P1' ),
+ *         ),
+ *         'identifiers' => array(
+ *             'type' => 'dataType',
+ *             'dataTypes' => array( 'identifier' ),
+ *         ),
+ *     ),
+ *     'property' => array(
+ *     ),
+ * ),
+ *
+ * @since 0.5
+ *
+ * @license GNU GPL v2+
+ * @author Daniel Kinzler
+ * @author Thiemo Mättig
+ */
+class StatementGrouperBuilder {
+
+       /**
+        * @var array[]
+        */
+       private $specifications;
+
+       /**
+        * @var PropertyDataTypeLookup
+        */
+       private $dataTypeLookup;
+
+       /**
+        * @param array[] $specifications See the class level documentation for 
details.
+        * @param PropertyDataTypeLookup $dataTypeLookup
+        */
+       public function __construct( array $specifications, 
PropertyDataTypeLookup $dataTypeLookup ) {
+               $this->specifications = $specifications;
+               $this->dataTypeLookup = $dataTypeLookup;
+       }
+
+       /**
+        * @throws InvalidArgumentException
+        * @return StatementGrouper
+        */
+       public function getStatementGrouper() {
+               $groupers = array();
+
+               foreach ( $this->specifications as $entityType => $filterSpecs 
) {
+                       $groupers[$entityType] = $filterSpecs === null
+                               ? new NullStatementGrouper()
+                               : $this->newFilteringStatementGrouper( 
$filterSpecs );
+               }
+
+               return new DispatchingEntityTypeStatementGrouper( $groupers );
+       }
+
+       /**
+        * @param array[] $filterSpecs
+        *
+        * @throws InvalidArgumentException
+        * @return FilteringStatementGrouper
+        */
+       private function newFilteringStatementGrouper( array $filterSpecs ) {
+               $filters = array();
+
+               foreach ( $filterSpecs as $groupIdentifier => $spec ) {
+                       $filters[$groupIdentifier] = $spec === null
+                               ? null
+                               : $this->newStatementFilter( $spec );
+               }
+
+               return new FilteringStatementGrouper( $filters );
+       }
+
+       /**
+        * @param array $spec
+        *
+        * @throws InvalidArgumentException
+        * @return StatementFilter
+        */
+       private function newStatementFilter( array $spec ) {
+               $this->requireField( $spec, 'type' );
+
+               switch ( $spec['type'] ) {
+                       case null:
+                               return new NullStatementFilter();
+                       case 'dataType':
+                               $this->requireField( $spec, 'dataTypes' );
+                               return new DataTypeStatementFilter( 
$this->dataTypeLookup, $spec['dataTypes'] );
+                       case 'propertySet':
+                               $this->requireField( $spec, 'propertyIds' );
+                               return new PropertySetStatementFilter( 
$spec['propertyIds'] );
+                       // Be aware that this switch statement is a possible 
violation of the open-closed
+                       // principle. When the number of filters grows, please 
try to extract this in a way that
+                       // it can be injected.
+               }
+
+               throw new InvalidArgumentException( 'Unknown filter type: ' . 
$spec['type'] );
+       }
+
+       /**
+        * @param array $spec
+        * @param string $field
+        *
+        * @throws InvalidArgumentException
+        */
+       private function requireField( array $spec, $field ) {
+               if ( !array_key_exists( $field, $spec ) ) {
+                       throw new InvalidArgumentException(
+                               "Statement group configuration misses required 
field '$field'"
+                       );
+               }
+       }
+
+}
diff --git a/extensions/Wikibase/repo/includes/StatementGrouperFactory.php 
b/extensions/Wikibase/repo/includes/StatementGrouperFactory.php
deleted file mode 100644
index 2e614a6..0000000
--- a/extensions/Wikibase/repo/includes/StatementGrouperFactory.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-namespace Wikibase\Repo;
-
-use Wikibase\DataModel\Services\Statement\Grouper\NullStatementGrouper;
-use Wikibase\DataModel\Services\Statement\Grouper\StatementGrouper;
-
-/**
- * Factory for StatementGrouper instances for different entity types.
- *
- * @since 0.5
- *
- * @license GNU GPL v2+
- * @author Daniel Kinzler
- */
-class StatementGrouperFactory {
-
-       /**
-        * @param string $entityType
-        *
-        * @return StatementGrouper
-        */
-       public function getStatementGrouper( $entityType ) {
-               // TODO: Group statements into actual sections, including an 
identifiers section.
-               return new NullStatementGrouper();
-       }
-
-}
diff --git a/extensions/Wikibase/repo/includes/WikibaseRepo.php 
b/extensions/Wikibase/repo/includes/WikibaseRepo.php
index 64ac2bd..90073f1 100644
--- a/extensions/Wikibase/repo/includes/WikibaseRepo.php
+++ b/extensions/Wikibase/repo/includes/WikibaseRepo.php
@@ -18,6 +18,7 @@
 use ValueFormatters\FormatterOptions;
 use ValueFormatters\ValueFormatter;
 use Wikibase\DataModel\Entity\PropertyId;
+use Wikibase\DataModel\Services\Statement\Grouper\FilteringStatementGrouper;
 use Wikibase\Lib\DataTypeDefinitions;
 use Wikibase\ChangeOp\ChangeOpFactoryProvider;
 use Wikibase\DataModel\DeserializerFactory;
@@ -1310,11 +1311,18 @@
         */
        public function getEntityParserOutputGeneratorFactory() {
                $templateFactory = TemplateFactory::getDefaultInstance();
+               $dataTypeLookup = $this->getPropertyDataTypeLookup();
+
+               $statementGrouperBuilder = new StatementGrouperBuilder(
+                       $this->settings->getSetting( 'statementSections' ),
+                       $dataTypeLookup
+               );
+
                $entityViewFactory = new EntityViewFactory(
                        $this->getEntityIdHtmlLinkFormatterFactory(),
                        new EntityIdLabelFormatterFactory(),
                        $this->getHtmlSnakFormatterFactory(),
-                       new StatementGrouperFactory(),
+                       $statementGrouperBuilder->getStatementGrouper(),
                        $this->getSiteStore(),
                        $this->getDataTypeFactory(),
                        $templateFactory,
@@ -1335,7 +1343,7 @@
                        $this->getLanguageFallbackChainFactory(),
                        $templateFactory,
                        $entityDataFormatProvider,
-                       $this->getPropertyDataTypeLookup(),
+                       $dataTypeLookup,
                        $this->getLocalEntityUriParser(),
                        $this->settings->getSetting( 
'preferredGeoDataProperties' ),
                        $this->settings->getSetting( 
'preferredPageImagesProperties' ),
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/DispatchingEntityTypeStatementGrouperTest.php
 
b/extensions/Wikibase/repo/tests/phpunit/includes/DispatchingEntityTypeStatementGrouperTest.php
new file mode 100644
index 0000000..d4db3ac
--- /dev/null
+++ 
b/extensions/Wikibase/repo/tests/phpunit/includes/DispatchingEntityTypeStatementGrouperTest.php
@@ -0,0 +1,74 @@
+<?php
+
+namespace Wikibase\Test;
+
+use PHPUnit_Framework_TestCase;
+use Wikibase\DataModel\Services\Statement\Grouper\StatementGrouper;
+use Wikibase\DataModel\Snak\PropertyNoValueSnak;
+use Wikibase\DataModel\Statement\StatementList;
+use Wikibase\Repo\DispatchingEntityTypeStatementGrouper;
+
+/**
+ * @covers Wikibase\Repo\DispatchingEntityTypeStatementGrouper
+ *
+ * @group Wikibase
+ *
+ * @licence GNU GPL v2+
+ * @author Thiemo Mättig
+ */
+class DispatchingEntityTypeStatementGrouperTest extends 
PHPUnit_Framework_TestCase {
+
+       /**
+        * @param int $count
+        *
+        * @return StatementGrouper
+        */
+       private function newGrouper( $count ) {
+               $grouper = $this->getMock(
+                       
'Wikibase\DataModel\Services\Statement\Grouper\StatementGrouper'
+               );
+
+               $grouper->expects( $this->exactly( $count ) )
+                       ->method( 'groupStatements' );
+
+               return $grouper;
+       }
+
+       /**
+        * @dataProvider invalidConstructorArgumentProvider
+        */
+       public function testInvalidConstructorArgument( array $groupers ) {
+               $this->setExpectedException( 'InvalidArgumentException' );
+               new DispatchingEntityTypeStatementGrouper( $groupers );
+       }
+
+       public function invalidConstructorArgumentProvider() {
+               return array(
+                       array( array( $this->newGrouper( 0 ) ) ),
+                       array( array( 'item' => 'invalid' ) ),
+               );
+       }
+
+       public function testFallsBackToNullGrouper() {
+               $statements = new StatementList();
+               $statements->addNewStatement( new PropertyNoValueSnak( 1 ), 
null, null, 'Q1$' );
+
+               $grouper = new DispatchingEntityTypeStatementGrouper( array() );
+               $groups = $grouper->groupStatements( $statements );
+
+               $this->assertSame( array( 'statements' => $statements ), 
$groups );
+       }
+
+       public function testUsesFirstStatementsGuid() {
+               $statements = new StatementList();
+               $statements->addNewStatement( new PropertyNoValueSnak( 1 ), 
null, null, 'Q1$' );
+               $statements->addNewStatement( new PropertyNoValueSnak( 1 ), 
null, null, 'P1$' );
+
+               $grouper = new DispatchingEntityTypeStatementGrouper( array(
+                       'item' => $this->newGrouper( 1 ),
+                       'property' => $this->newGrouper( 0 ),
+               ) );
+               $grouper->groupStatements( $statements );
+       }
+
+}
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/StatementGrouperBuilderTest.php
 
b/extensions/Wikibase/repo/tests/phpunit/includes/StatementGrouperBuilderTest.php
new file mode 100644
index 0000000..bfa54f5
--- /dev/null
+++ 
b/extensions/Wikibase/repo/tests/phpunit/includes/StatementGrouperBuilderTest.php
@@ -0,0 +1,157 @@
+<?php
+
+namespace Wikibase\Test;
+
+use PHPUnit_Framework_TestCase;
+use Wikibase\DataModel\Snak\PropertyNoValueSnak;
+use Wikibase\DataModel\Statement\StatementList;
+use Wikibase\Repo\StatementGrouperBuilder;
+
+/**
+ * @covers Wikibase\Repo\StatementGrouperBuilder
+ *
+ * @group Wikibase
+ *
+ * @licence GNU GPL v2+
+ * @author Thiemo Mättig
+ */
+class StatementGrouperBuilderTest extends PHPUnit_Framework_TestCase {
+
+       /**
+        * @param array[] $specifications
+        *
+        * @return StatementGrouperBuilder
+        */
+       private function newInstance( array $specifications ) {
+               $lookup = $this->getMock( 
'Wikibase\DataModel\Services\Lookup\PropertyDataTypeLookup' );
+
+               $lookup->expects( $this->any() )
+                       ->method( 'getDataTypeIdForProperty' )
+                       ->will( $this->returnValue( true ) );
+
+               return new StatementGrouperBuilder( $specifications, $lookup );
+       }
+
+       /**
+        * @return StatementList
+        */
+       private function newStatementList() {
+               $statements = new StatementList();
+               $statements->addNewStatement( new PropertyNoValueSnak( 1 ), 
null, null, 'Q1$' );
+               return $statements;
+       }
+
+       public function testAcceptsEmptyArray() {
+               $builder = $this->newInstance( array() );
+               $grouper = $builder->getStatementGrouper();
+               $this->assertInstanceOf( 
'Wikibase\Repo\DispatchingEntityTypeStatementGrouper', $grouper );
+       }
+
+       public function testAcceptsNullGrouper() {
+               $statements = $this->newStatementList();
+
+               $builder = $this->newInstance( array(
+                       'item' => null,
+               ) );
+               $grouper = $builder->getStatementGrouper();
+               $groups = $grouper->groupStatements( $statements );
+
+               $this->assertSame( array( 'statements' => $statements ), 
$groups );
+       }
+
+       public function testAcceptsDefaultFilter() {
+               $statements = $this->newStatementList();
+
+               $builder = $this->newInstance( array(
+                       'item' => array(
+                               'default' => null,
+                       )
+               ) );
+               $grouper = $builder->getStatementGrouper();
+               $groups = $grouper->groupStatements( $statements );
+
+               $this->assertEquals( array( 'default' => $statements ), $groups 
);
+       }
+
+       public function testAcceptsNullFilter() {
+               $statements = $this->newStatementList();
+
+               $builder = $this->newInstance( array(
+                       'item' => array(
+                               'custom' => array( 'type' => null ),
+                       )
+               ) );
+               $grouper = $builder->getStatementGrouper();
+               $groups = $grouper->groupStatements( $statements );
+
+               $this->assertEquals( array(
+                       'custom' => $statements,
+                       'statements' => new StatementList(),
+               ), $groups );
+       }
+
+       public function testIncompleteDataTypeFilter() {
+               $builder = $this->newInstance( array(
+                       'item' => array(
+                               'custom' => array( 'type' => 'dataType' ),
+                       )
+               ) );
+               $this->setExpectedException( 'InvalidArgumentException' );
+               $builder->getStatementGrouper();
+       }
+
+       public function testDataTypeFilter() {
+               $statements = $this->newStatementList();
+
+               $builder = $this->newInstance( array(
+                       'item' => array(
+                               'custom' => array( 'type' => 'dataType', 
'dataTypes' => array( 'string' ) ),
+                       )
+               ) );
+               $grouper = $builder->getStatementGrouper();
+               $groups = $grouper->groupStatements( $statements );
+
+               $this->assertEquals( array(
+                       'custom' => $statements,
+                       'statements' => new StatementList(),
+               ), $groups );
+       }
+
+       public function testIncompletePropertySetFilter() {
+               $builder = $this->newInstance( array(
+                       'item' => array(
+                               'custom' => array( 'type' => 'propertySet' ),
+                       )
+               ) );
+               $this->setExpectedException( 'InvalidArgumentException' );
+               $builder->getStatementGrouper();
+       }
+
+       public function testPropertySetFilter() {
+               $statements = $this->newStatementList();
+
+               $builder = $this->newInstance( array(
+                       'item' => array(
+                               'custom' => array( 'type' => 'propertySet', 
'propertyIds' => array( 'P1' ) ),
+                       )
+               ) );
+               $grouper = $builder->getStatementGrouper();
+               $groups = $grouper->groupStatements( $statements );
+
+               $this->assertEquals( array(
+                       'custom' => $statements,
+                       'statements' => new StatementList(),
+               ), $groups );
+       }
+
+       public function testInvalidFilterType() {
+               $builder = $this->newInstance( array(
+                       'item' => array(
+                               'custom' => array( 'type' => 'invalid' ),
+                       )
+               ) );
+               $this->setExpectedException( 'InvalidArgumentException' );
+               $builder->getStatementGrouper();
+       }
+
+}
diff --git 
a/extensions/Wikibase/repo/tests/phpunit/includes/Validators/LabelUniquenessValidatorTest.php
 
b/extensions/Wikibase/repo/tests/phpunit/includes/Validators/LabelUniquenessValidatorTest.php
index 7c3f2b8..6df210f 100644
--- 
a/extensions/Wikibase/repo/tests/phpunit/includes/Validators/LabelUniquenessValidatorTest.php
+++ 
b/extensions/Wikibase/repo/tests/phpunit/includes/Validators/LabelUniquenessValidatorTest.php
@@ -111,11 +111,11 @@
                        new AliasGroupList()
                );
 
-               $dupeAliasFingerprint = new Fingerprint(
-                       new TermList( array( new Term( 'de', 'good' ) ) ),
-                       new TermList(),
-                       new AliasGroupList( array( new AliasGroup( 'de', array( 
'DUPE' ) ) ) )
-               );
+//             $dupeAliasFingerprint = new Fingerprint(
+//                     new TermList( array( new Term( 'de', 'good' ) ) ),
+//                     new TermList(),
+//                     new AliasGroupList( array( new AliasGroup( 'de', array( 
'DUPE' ) ) ) )
+//             );
 
                return array(
                        'conflicting label' => array( $dupeLabelFingerprint, 
'label-conflict' ),
diff --git a/extensions/Wikibase/view/resources/wikibase/wikibase.css 
b/extensions/Wikibase/view/resources/wikibase/wikibase.css
index 54bccd4..01a5753 100644
--- a/extensions/Wikibase/view/resources/wikibase/wikibase.css
+++ b/extensions/Wikibase/view/resources/wikibase/wikibase.css
@@ -43,10 +43,6 @@
        color: inherit;
 }
 
-.wb-entitypage .wikibase-wbtooltip-tip .tipsy-arrow {
-       display: none;
-}
-
 /* Messages displayed while some action is performed (e.g. an API call) */
 .wb-actionmsg {
        font-style: italic;
diff --git a/extensions/Wikibase/view/src/EntityViewFactory.php 
b/extensions/Wikibase/view/src/EntityViewFactory.php
index a78ed1a..12c9d99 100644
--- a/extensions/Wikibase/view/src/EntityViewFactory.php
+++ b/extensions/Wikibase/view/src/EntityViewFactory.php
@@ -7,10 +7,10 @@
 use Language;
 use SiteStore;
 use Wikibase\DataModel\Services\Lookup\LabelDescriptionLookup;
+use Wikibase\DataModel\Services\Statement\Grouper\StatementGrouper;
 use Wikibase\LanguageFallbackChain;
 use Wikibase\Lib\LanguageNameLookup;
 use Wikibase\Lib\SnakFormatter;
-use Wikibase\Repo\StatementGrouperFactory;
 use Wikibase\View\Template\TemplateFactory;
 
 /**
@@ -38,9 +38,9 @@
        private $plainTextIdFormatterFactory;
 
        /**
-        * @var StatementGrouperFactory
+        * @var StatementGrouper
         */
-       private $statementGrouperFactory;
+       private $statementGrouper;
 
        /**
         * @var SiteStore
@@ -81,7 +81,7 @@
         * @param EntityIdFormatterFactory $htmlIdFormatterFactory
         * @param EntityIdFormatterFactory $plainTextIdFormatterFactory
         * @param HtmlSnakFormatterFactory $htmlSnakFormatterFactory
-        * @param StatementGrouperFactory $statementGrouperFactory,
+        * @param StatementGrouper $statementGrouper
         * @param SiteStore $siteStore
         * @param DataTypeFactory $dataTypeFactory
         * @param TemplateFactory $templateFactory
@@ -96,7 +96,7 @@
                EntityIdFormatterFactory $htmlIdFormatterFactory,
                EntityIdFormatterFactory $plainTextIdFormatterFactory,
                HtmlSnakFormatterFactory $htmlSnakFormatterFactory,
-               StatementGrouperFactory $statementGrouperFactory,
+               StatementGrouper $statementGrouper,
                SiteStore $siteStore,
                DataTypeFactory $dataTypeFactory,
                TemplateFactory $templateFactory,
@@ -114,7 +114,7 @@
                $this->htmlIdFormatterFactory = $htmlIdFormatterFactory;
                $this->plainTextIdFormatterFactory = 
$plainTextIdFormatterFactory;
                $this->htmlSnakFormatterFactory = $htmlSnakFormatterFactory;
-               $this->statementGrouperFactory = $statementGrouperFactory;
+               $this->statementGrouper = $statementGrouper;
                $this->siteStore = $siteStore;
                $this->dataTypeFactory = $dataTypeFactory;
                $this->templateFactory = $templateFactory;
@@ -165,8 +165,6 @@
         ) {
                $entityTermsView = $this->newEntityTermsView( $languageCode, 
$editSectionGenerator );
 
-               $statementGrouper = 
$this->statementGrouperFactory->getStatementGrouper( $entityType );
-
                $statementSectionsView = $this->newStatementSectionsView(
                        $languageCode,
                        $fallbackChain,
@@ -193,7 +191,7 @@
                                return new ItemView(
                                        $this->templateFactory,
                                        $entityTermsView,
-                                       $statementGrouper,
+                                       $this->statementGrouper,
                                        $statementSectionsView,
                                        $language,
                                        $siteLinksView,
@@ -203,7 +201,7 @@
                                return new PropertyView(
                                        $this->templateFactory,
                                        $entityTermsView,
-                                       $statementGrouper,
+                                       $this->statementGrouper,
                                        $statementSectionsView,
                                        $this->dataTypeFactory,
                                        $language
diff --git a/extensions/Wikibase/view/tests/phpunit/EntityViewFactoryTest.php 
b/extensions/Wikibase/view/tests/phpunit/EntityViewFactoryTest.php
index cdec272..611eea4 100644
--- a/extensions/Wikibase/view/tests/phpunit/EntityViewFactoryTest.php
+++ b/extensions/Wikibase/view/tests/phpunit/EntityViewFactoryTest.php
@@ -5,9 +5,9 @@
 use DataTypes\DataTypeFactory;
 use PHPUnit_Framework_TestCase;
 use SiteList;
+use Wikibase\DataModel\Services\Statement\Grouper\NullStatementGrouper;
 use Wikibase\LanguageFallbackChain;
 use Wikibase\Lib\SnakFormatter;
-use Wikibase\Repo\StatementGrouperFactory;
 use Wikibase\View\EntityIdFormatterFactory;
 use Wikibase\View\EntityViewFactory;
 use Wikibase\View\Template\TemplateFactory;
@@ -53,7 +53,7 @@
                        $htmlFactory ?: $this->getEntityIdFormatterFactory( 
SnakFormatter::FORMAT_HTML ),
                        $plainFactory ?: $this->getEntityIdFormatterFactory( 
SnakFormatter::FORMAT_PLAIN ),
                        $this->getSnakFormatterFactory(),
-                       new StatementGrouperFactory(),
+                       new NullStatementGrouper(),
                        $this->getSiteStore(),
                        new DataTypeFactory( array() ),
                        $templateFactory,
diff --git a/vendor/composer/autoload_classmap.php 
b/vendor/composer/autoload_classmap.php
index 0dd9590..66941c9 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -924,6 +924,7 @@
     'Wikibase\\Repo\\Diff\\DifferencesSnakVisualizer' => $baseDir . 
'/extensions/Wikibase/repo/includes/Diff/DifferencesSnakVisualizer.php',
     'Wikibase\\Repo\\Diff\\EntityContentDiffView' => $baseDir . 
'/extensions/Wikibase/repo/includes/Diff/EntityContentDiffView.php',
     'Wikibase\\Repo\\Diff\\EntityDiffVisualizer' => $baseDir . 
'/extensions/Wikibase/repo/includes/Diff/EntityDiffVisualizer.php',
+    'Wikibase\\Repo\\DispatchingEntityTypeStatementGrouper' => $baseDir . 
'/extensions/Wikibase/repo/includes/DispatchingEntityTypeStatementGrouper.php',
     'Wikibase\\Repo\\Disposable' => $baseDir . 
'/extensions/Wikibase/repo/includes/Disposable.php',
     'Wikibase\\Repo\\EntityIdHtmlLinkFormatterFactory' => $baseDir . 
'/extensions/Wikibase/repo/includes/EntityIdHtmlLinkFormatterFactory.php',
     'Wikibase\\Repo\\EntityIdLabelFormatterFactory' => $baseDir . 
'/extensions/Wikibase/repo/includes/EntityIdLabelFormatterFactory.php',
@@ -1020,7 +1021,7 @@
     'Wikibase\\Repo\\Specials\\SpecialWikibasePage' => $baseDir . 
'/extensions/Wikibase/repo/includes/specials/SpecialWikibasePage.php',
     'Wikibase\\Repo\\Specials\\SpecialWikibaseQueryPage' => $baseDir . 
'/extensions/Wikibase/repo/includes/specials/SpecialWikibaseQueryPage.php',
     'Wikibase\\Repo\\Specials\\SpecialWikibaseRepoPage' => $baseDir . 
'/extensions/Wikibase/repo/includes/specials/SpecialWikibaseRepoPage.php',
-    'Wikibase\\Repo\\StatementGrouperFactory' => $baseDir . 
'/extensions/Wikibase/repo/includes/StatementGrouperFactory.php',
+    'Wikibase\\Repo\\StatementGrouperBuilder' => $baseDir . 
'/extensions/Wikibase/repo/includes/StatementGrouperBuilder.php',
     'Wikibase\\Repo\\Store\\ChangeStore' => $baseDir . 
'/extensions/Wikibase/repo/includes/store/ChangeStore.php',
     'Wikibase\\Repo\\Store\\DispatchingEntityStoreWatcher' => $baseDir . 
'/extensions/Wikibase/repo/includes/store/DispatchingEntityStoreWatcher.php',
     'Wikibase\\Repo\\Store\\EntityIdPager' => $baseDir . 
'/extensions/Wikibase/repo/includes/store/EntityIdPager.php',
@@ -1183,6 +1184,7 @@
     'Wikibase\\Test\\DiffOpValueFormatterTest' => $baseDir . 
'/extensions/Wikibase/repo/tests/phpunit/includes/Diff/DiffOpValueFormatterTest.php',
     'Wikibase\\Test\\DiffViewTest' => $baseDir . 
'/extensions/Wikibase/repo/tests/phpunit/includes/Diff/DiffViewTest.php',
     'Wikibase\\Test\\DifferencesSnakVisualizerTest' => $baseDir . 
'/extensions/Wikibase/repo/tests/phpunit/includes/Diff/DifferencesSnakVisualizerTest.php',
+    'Wikibase\\Test\\DispatchingEntityTypeStatementGrouperTest' => $baseDir . 
'/extensions/Wikibase/repo/tests/phpunit/includes/DispatchingEntityTypeStatementGrouperTest.php',
     'Wikibase\\Test\\DispatchingExceptionLocalizerTest' => $baseDir . 
'/extensions/Wikibase/repo/tests/phpunit/includes/Localizer/DispatchingExceptionLocalizerTest.php',
     'Wikibase\\Test\\DualSubscriptionLookupTest' => $baseDir . 
'/extensions/Wikibase/repo/tests/phpunit/includes/store/DualSubscriptionLookupTest.php',
     'Wikibase\\Test\\DumpJsonTest' => $baseDir . 
'/extensions/Wikibase/repo/tests/phpunit/maintenance/dumpJsonTest.php',
@@ -1399,6 +1401,7 @@
     'Wikibase\\Test\\SqlSiteLinkConflictLookupTest' => $baseDir . 
'/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/SqlSiteLinkConflictLookupTest.php',
     'Wikibase\\Test\\SqlSubscriptionLookupTest' => $baseDir . 
'/extensions/Wikibase/repo/tests/phpunit/includes/store/sql/SqlSubscriptionLookupTest.php',
     'Wikibase\\Test\\StatementChangeOpFactoryTest' => $baseDir . 
'/extensions/Wikibase/repo/tests/phpunit/includes/ChangeOp/StatementChangeOpFactoryTest.php',
+    'Wikibase\\Test\\StatementGrouperBuilderTest' => $baseDir . 
'/extensions/Wikibase/repo/tests/phpunit/includes/StatementGrouperBuilderTest.php',
     'Wikibase\\Test\\StatementRankSerializerTest' => $baseDir . 
'/extensions/Wikibase/repo/tests/phpunit/includes/StatementRankSerializerTest.php',
     'Wikibase\\Test\\StoreTest' => $baseDir . 
'/extensions/Wikibase/repo/tests/phpunit/includes/store/StoreTest.php',
     'Wikibase\\Test\\StringNormalizerTest' => $baseDir . 
'/extensions/Wikibase/lib/tests/phpunit/StringNormalizerTest.php',
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index 2bb0b50..01f383b 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -1236,12 +1236,12 @@
         "source": {
             "type": "git",
             "url": 
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git";,
-            "reference": "cb21dcb4e8691ee3aa4c3c40b7832e48d2286516"
+            "reference": "4a50981973f59459fb214cf5c99a216d13d749a8"
         },
         "dist": {
             "type": "zip",
-            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/cb21dcb4e8691ee3aa4c3c40b7832e48d2286516";,
-            "reference": "cb21dcb4e8691ee3aa4c3c40b7832e48d2286516",
+            "url": 
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/4a50981973f59459fb214cf5c99a216d13d749a8";,
+            "reference": "4a50981973f59459fb214cf5c99a216d13d749a8",
             "shasum": ""
         },
         "require": {
@@ -1273,7 +1273,7 @@
             "jakub-onderka/php-parallel-lint": "0.9",
             "mediawiki/mediawiki-codesniffer": "0.4.0|0.5.0"
         },
-        "time": "2015-12-09 22:19:02",
+        "time": "2015-12-10 22:02:00",
         "type": "mediawiki-extension",
         "installation-source": "dist",
         "autoload": {

-- 
To view, visit https://gerrit.wikimedia.org/r/258431
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I373391fe7aa79896a38f9adda3c9847a14c0841f
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikidata
Gerrit-Branch: master
Gerrit-Owner: WikidataBuilder <wikidata-servi...@wikimedia.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to