Aleksey Bekh-Ivanov (WMDE) has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/354239 )

Change subject: Move example data from LexemeView to LexemeContent to make it 
"visible" to serializers
......................................................................

Move example data from LexemeView to LexemeContent to make it "visible" to 
serializers

Change-Id: Ideb0f9ba43a2e1b08645ef229e7405deab2bc169
---
M src/Content/LexemeContent.php
M src/DataModel/Lexeme.php
M src/View/LexemeView.php
3 files changed, 55 insertions(+), 34 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikibaseLexeme 
refs/changes/39/354239/1

diff --git a/src/Content/LexemeContent.php b/src/Content/LexemeContent.php
index b86a59a..0e881f9 100644
--- a/src/Content/LexemeContent.php
+++ b/src/Content/LexemeContent.php
@@ -3,11 +3,20 @@
 namespace Wikibase\Lexeme\Content;
 
 use InvalidArgumentException;
-use MongoDB\Driver\Exception\UnexpectedValueException;
 use Wikibase\Content\EntityHolder;
 use Wikibase\EntityContent;
 use Wikibase\Lexeme\DataModel\Lexeme;
 use Wikimedia\Assert\Assert;
+
+use DataValues\StringValue;
+use Wikibase\DataModel\Entity\ItemId;
+use Wikibase\DataModel\Entity\PropertyId;
+use Wikibase\DataModel\Snak\PropertyNoValueSnak;
+use Wikibase\DataModel\Snak\PropertyValueSnak;
+use Wikibase\DataModel\Statement\Statement;
+use Wikibase\DataModel\Statement\StatementList;
+use Wikibase\Lexeme\DataModel\LexemeForm;
+use Wikibase\Lexeme\DataModel\LexemeFormId;
 
 /**
  * @license GPL-2.0+
@@ -44,7 +53,41 @@
         * @return Lexeme
         */
        public function getEntity() {
-               return $this->lexemeHolder->getEntity( Lexeme::class );
+               /** @var Lexeme $lexeme */
+               $lexeme = $this->lexemeHolder->getEntity( Lexeme::class );
+
+               // TODO: This obviously is a dummy that must be removed
+               $grammaticalFeatures1 = [ new ItemId( 'Q2' ) ];
+               $grammaticalFeatures2 = [ new ItemId( 'Q2' ), new ItemId( 'Q3' 
) ];
+               $statements1 = new StatementList(
+                       [
+                               new Statement( new PropertyNoValueSnak( new 
PropertyId( 'P2' ) ), null, null, 'guid1' )
+                       ]
+               );
+               $statements2 = new StatementList(
+                       [
+                               new Statement( new PropertyNoValueSnak( new 
PropertyId( 'P2' ) ), null, null, 'guid2' ),
+                               new Statement(
+                                       new PropertyValueSnak(
+                                               new PropertyId( 'P3' ),
+                                               new StringValue( 'asd' )
+                                       ),
+                                       null,
+                                       null,
+                                       'guid3'
+                               ),
+                       ]
+               );
+
+               $forms = [
+                       new LexemeForm( new LexemeFormId( 'F1' ), 'A', [] ),
+                       new LexemeForm( new LexemeFormId( 'F2' ), 'B', 
$grammaticalFeatures1, $statements1 ),
+                       new LexemeForm( new LexemeFormId( 'F3' ), 'C', 
$grammaticalFeatures2, $statements2 ),
+               ];
+
+               $lexeme->setForms( $forms );
+
+               return $lexeme;
        }
 
        /**
diff --git a/src/DataModel/Lexeme.php b/src/DataModel/Lexeme.php
index 014bab2..7575999 100644
--- a/src/DataModel/Lexeme.php
+++ b/src/DataModel/Lexeme.php
@@ -233,6 +233,14 @@
        }
 
        /**
+        * @param LexemeForm[] $forms
+        * @deprecated Temporary method, for demo. Just don't use.
+        */
+       public function setForms( $forms ) {
+               $this->forms = $forms;
+       }
+
+       /**
         * @return bool False if a non-optional field was never initialized, 
true otherwise.
         */
        public function isSufficientlyInitialized() {
diff --git a/src/View/LexemeView.php b/src/View/LexemeView.php
index 22ac15c..4bdb94e 100644
--- a/src/View/LexemeView.php
+++ b/src/View/LexemeView.php
@@ -2,24 +2,16 @@
 
 namespace Wikibase\Lexeme\View;
 
-use DataValues\StringValue;
 use InvalidArgumentException;
 use Language;
 use Message;
 use Wikibase\DataModel\Entity\EntityDocument;
 use Wikibase\DataModel\Entity\ItemId;
-use Wikibase\DataModel\Entity\PropertyId;
 use Wikibase\DataModel\Services\Lookup\LabelDescriptionLookup;
 use Wikibase\DataModel\Services\Lookup\LabelDescriptionLookupException;
-use Wikibase\DataModel\Snak\PropertyNoValueSnak;
-use Wikibase\DataModel\Snak\PropertyValueSnak;
-use Wikibase\DataModel\Statement\Statement;
-use Wikibase\DataModel\Statement\StatementList;
 use Wikibase\DataModel\Term\Term;
 use Wikibase\DataModel\Term\TermList;
 use Wikibase\Lexeme\DataModel\Lexeme;
-use Wikibase\Lexeme\DataModel\LexemeForm;
-use Wikibase\Lexeme\DataModel\LexemeFormId;
 use Wikibase\View\EntityTermsView;
 use Wikibase\View\EntityView;
 use Wikibase\View\HtmlTermRenderer;
@@ -109,33 +101,11 @@
                /** @var Lexeme $entity */
                Assert::parameterType( Lexeme::class, $entity, '$entity' );
 
-               // TODO: This obviously is a dummy that must be removed
-               $grammaticalFeatures1 = [ new ItemId( 'Q2' ) ];
-               $grammaticalFeatures2 = [ new ItemId( 'Q2' ), new ItemId( 'Q3' 
) ];
-               $statements1 = new StatementList( [
-                       new Statement( new PropertyNoValueSnak( new PropertyId( 
'P2' ) ) )
-               ] );
-               $statements2 = new StatementList( [
-                       new Statement( new PropertyNoValueSnak( new PropertyId( 
'P2' ) ) ),
-                       new Statement( new PropertyValueSnak(
-                               new PropertyId( 'P3' ),
-                               new StringValue( 'asd' )
-                       ) ),
-                ] );
-
-               $forms = [
-                       new LexemeForm( new LexemeFormId( 'F1' ), 'A', [] ),
-                       new LexemeForm( new LexemeFormId( 'F2' ), 'B', 
$grammaticalFeatures1, $statements1 ),
-                       new LexemeForm( new LexemeFormId( 'F3' ), 'C', 
$grammaticalFeatures2, $statements2 ),
-               ];
-
-               $html = $this->getHtmlForLexicalCategoryAndLanguage( $entity )
+               return $this->getHtmlForLexicalCategoryAndLanguage( $entity )
                        . $this->templateFactory->render( 'wikibase-toc' )
                        . $this->statementSectionsView->getHtml( 
$entity->getStatements() )
-                       . $this->formsView->getHtml( $forms )
+                       . $this->formsView->getHtml( $entity->getForms() )
                        . $this->sensesView->getHtml();
-
-               return $html;
        }
 
        /**

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ideb0f9ba43a2e1b08645ef229e7405deab2bc169
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikibaseLexeme
Gerrit-Branch: master
Gerrit-Owner: Aleksey Bekh-Ivanov (WMDE) <aleksey.bekh-iva...@wikimedia.de>

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

Reply via email to