[MediaWiki-commits] [Gerrit] mediawiki...WikibaseLexeme[master]: Move example data from LexemeView to LexemeContent to make i...

2017-05-19 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged. ( 
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

Bug: T165480
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(-)

Approvals:
  Jonas Kress (WMDE): Looks good to me, approved
  jenkins-bot: Verified
  Thiemo Mättig (WMDE): Looks good to me, approved



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 

[MediaWiki-commits] [Gerrit] mediawiki...WikibaseLexeme[master]: Move example data from LexemeView to LexemeContent to make i...

2017-05-18 Thread Aleksey Bekh-Ivanov (WMDE) (Code Review)
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 

[MediaWiki-commits] [Gerrit] mediawiki...WikibaseLexeme[master]: Move example data from LexemeView to LexemeContent to make i...

2017-05-18 Thread Aleksey Bekh-Ivanov (WMDE) (Code Review)
Aleksey Bekh-Ivanov (WMDE) has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/354215 )

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: I8444bf33b8ec7c06d09590a2495b2e01c1029ae0
---
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/15/354215/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