Package org.openrefine.wikibase.updates
Class ItemEdit
- java.lang.Object
-
- org.openrefine.wikibase.updates.LabeledStatementEntityEdit
-
- org.openrefine.wikibase.updates.TermedStatementEntityEdit
-
- org.openrefine.wikibase.updates.ItemEdit
-
- All Implemented Interfaces:
EntityEdit
,StatementEntityEdit
public class ItemEdit extends TermedStatementEntityEdit
Represents a candidate edit on an existing item or the creation of a new one. This is the representation before any comparison with existing data.- Author:
- Antonin Delpeuch
-
-
Field Summary
-
Fields inherited from class org.openrefine.wikibase.updates.LabeledStatementEntityEdit
contributingRowIds, id, labels, labelsIfNew, statements
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
ItemEdit(org.wikidata.wdtk.datamodel.interfaces.EntityIdValue id, List<StatementEdit> statements, Map<String,org.wikidata.wdtk.datamodel.interfaces.MonolingualTextValue> labels, Map<String,org.wikidata.wdtk.datamodel.interfaces.MonolingualTextValue> labelsIfNew, Map<String,org.wikidata.wdtk.datamodel.interfaces.MonolingualTextValue> descriptions, Map<String,org.wikidata.wdtk.datamodel.interfaces.MonolingualTextValue> descriptionsIfNew, Map<String,List<org.wikidata.wdtk.datamodel.interfaces.MonolingualTextValue>> aliases, Set<Long> contributingRowIds)
Protected constructor to avoid re-constructing term maps when merging two entity updates.ItemEdit(org.wikidata.wdtk.datamodel.interfaces.EntityIdValue id, List<StatementEdit> statements, Set<org.wikidata.wdtk.datamodel.interfaces.MonolingualTextValue> labels, Set<org.wikidata.wdtk.datamodel.interfaces.MonolingualTextValue> labelsIfNew, Set<org.wikidata.wdtk.datamodel.interfaces.MonolingualTextValue> descriptions, Set<org.wikidata.wdtk.datamodel.interfaces.MonolingualTextValue> descriptionsIfNew, Set<org.wikidata.wdtk.datamodel.interfaces.MonolingualTextValue> aliases, Set<Long> contributingRowIds)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object other)
int
hashCode()
ItemEdit
merge(EntityEdit otherEdit)
Merges all the changes in other with this instance.org.wikidata.wdtk.datamodel.interfaces.EntityUpdate
toEntityUpdate(org.wikidata.wdtk.datamodel.interfaces.EntityDocument entityDocument)
In case the subject id is not new, returns the corresponding update given the current state of the entity.org.wikidata.wdtk.datamodel.interfaces.ItemDocument
toNewEntity()
In case the subject id is new, returns the corresponding new item document to be created.String
toString()
-
Methods inherited from class org.openrefine.wikibase.updates.TermedStatementEntityEdit
constructTermListMap, getAliases, getDescriptions, getDescriptionsIfNew, isEmpty
-
Methods inherited from class org.openrefine.wikibase.updates.LabeledStatementEntityEdit
getContributingRowIds, getEntityId, getLabels, getLabelsIfNew, getStatementEdits, getStatementGroupEdits, getStatementGroupsForNewEntity, mergeSingleTermMaps, toStatementUpdate
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.openrefine.wikibase.updates.EntityEdit
isNew, isNull, requiresFetchingExistingState
-
Methods inherited from interface org.openrefine.wikibase.updates.StatementEntityEdit
getAddedStatements, getDeletedStatements
-
-
-
-
Constructor Detail
-
ItemEdit
public ItemEdit(org.wikidata.wdtk.datamodel.interfaces.EntityIdValue id, List<StatementEdit> statements, Set<org.wikidata.wdtk.datamodel.interfaces.MonolingualTextValue> labels, Set<org.wikidata.wdtk.datamodel.interfaces.MonolingualTextValue> labelsIfNew, Set<org.wikidata.wdtk.datamodel.interfaces.MonolingualTextValue> descriptions, Set<org.wikidata.wdtk.datamodel.interfaces.MonolingualTextValue> descriptionsIfNew, Set<org.wikidata.wdtk.datamodel.interfaces.MonolingualTextValue> aliases, Set<Long> contributingRowIds)
Constructor.- Parameters:
id
- the subject of the document. It can be a reconciled entity value for new entities.statements
- the statements to change on the entity.labels
- the labels to add on the entity, overriding any existing one in that languagelabelsIfNew
- the labels to add on the entity, only if no label for that language existsdescriptions
- the descriptions to add on the item, overriding any existing one in that languagedescriptionsIfNew
- the descriptions to add on the item, only if no description for that language existsaliases
- the aliases to add on the item. In theory their order should matter but in practice people rarely rely on the order of aliases so this is just kept as a set for simplicity.
-
ItemEdit
protected ItemEdit(org.wikidata.wdtk.datamodel.interfaces.EntityIdValue id, List<StatementEdit> statements, Map<String,org.wikidata.wdtk.datamodel.interfaces.MonolingualTextValue> labels, Map<String,org.wikidata.wdtk.datamodel.interfaces.MonolingualTextValue> labelsIfNew, Map<String,org.wikidata.wdtk.datamodel.interfaces.MonolingualTextValue> descriptions, Map<String,org.wikidata.wdtk.datamodel.interfaces.MonolingualTextValue> descriptionsIfNew, Map<String,List<org.wikidata.wdtk.datamodel.interfaces.MonolingualTextValue>> aliases, Set<Long> contributingRowIds)
Protected constructor to avoid re-constructing term maps when merging two entity updates. No validation is done on the arguments, they all have to be non-null.- Parameters:
id
- the subject of the updatestatements
- the statements to add or deletelabels
- the labels to add on the entity, overriding any existing one in that languagelabelsIfNew
- the labels to add on the entity, only if no label for that language existsdescriptions
- the descriptions to add on the item, overriding any existing one in that languagedescriptionsIfNew
- the descriptions to add on the item, only if no description for that language existsaliases
- the aliases to add
-
-
Method Detail
-
merge
public ItemEdit merge(EntityEdit otherEdit)
Merges all the changes in other with this instance. Both updates should have the same subject. Changes coming from `other` have priority over changes from this instance. This instance is not modified, the merged update is returned instead.- Parameters:
otherEdit
- the other change that should be merged
-
toEntityUpdate
public org.wikidata.wdtk.datamodel.interfaces.EntityUpdate toEntityUpdate(org.wikidata.wdtk.datamodel.interfaces.EntityDocument entityDocument)
In case the subject id is not new, returns the corresponding update given the current state of the entity.- Parameters:
entityDocument
- The current state of the entity. IfEntityEdit.requiresFetchingExistingState()
returns false, then this parameter may be null, as it should not be required to compute theEntityUpdate
.
-
toNewEntity
public org.wikidata.wdtk.datamodel.interfaces.ItemDocument toNewEntity()
In case the subject id is new, returns the corresponding new item document to be created.
-
-