use of org.wikidata.wdtk.datamodel.interfaces.NoValueSnak in project OpenRefine by OpenRefine.
the class ConflictsWithScrutinizerTest method testNoValueSnak.
@Test
public void testNoValueSnak() {
ItemIdValue idA = TestingData.existingId;
ValueSnak value1 = Datamodel.makeValueSnak(conflictsWithPid, conflictsWithValue);
NoValueSnak value2 = Datamodel.makeNoValueSnak(propertyWithConflictsPid1);
Statement statement1 = new StatementImpl("P2002", value1, idA);
Statement statement2 = new StatementImpl("P31", value2, idA);
TermedStatementEntityEdit updateA = new TermedStatementEntityEditBuilder(idA).addStatement(add(statement1)).addStatement(add(statement2)).build();
Snak snak1 = Datamodel.makeValueSnak(propertyParameterPID, conflictingPropertyValue1);
Snak snak2 = Datamodel.makeValueSnak(itemParameterPID, conflictingItemValue1);
List<Snak> snakList1 = Collections.singletonList(snak1);
List<Snak> snakList2 = Collections.singletonList(snak2);
SnakGroup snakGroup1 = Datamodel.makeSnakGroup(snakList1);
SnakGroup snakGroup2 = Datamodel.makeSnakGroup(snakList2);
List<SnakGroup> constraintQualifiers = Arrays.asList(snakGroup1, snakGroup2);
List<Statement> constraintDefinitions = constraintParameterStatementList(entityIdValue, constraintQualifiers);
ConstraintFetcher fetcher = mock(ConstraintFetcher.class);
when(fetcher.getConstraintsByType(conflictsWithPid, CONFLICTS_WITH_CONSTRAINT_QID)).thenReturn(constraintDefinitions);
setFetcher(fetcher);
scrutinize(updateA);
assertNoWarningRaised();
}
use of org.wikidata.wdtk.datamodel.interfaces.NoValueSnak in project OpenRefine by OpenRefine.
the class SnakOnlyStatementMerger method match.
/**
* Matches two snaks using the underlying value matcher.
* The snaks must have the same property id to match.
*
* @param existingSnak
* @param addedSnak
* @return
*/
public boolean match(Snak existingSnak, Snak addedSnak) {
// Deliberately only comparing the pids and not the siteIRIs to avoid spurious mismatches due to federation
if (!existingSnak.getPropertyId().getId().equals(addedSnak.getPropertyId().getId())) {
return false;
} else if (existingSnak instanceof NoValueSnak && addedSnak instanceof NoValueSnak) {
return true;
} else if (existingSnak instanceof SomeValueSnak && addedSnak instanceof SomeValueSnak) {
return true;
} else {
Value existingValue = ((ValueSnak) existingSnak).getValue();
Value addedValue = ((ValueSnak) addedSnak).getValue();
return valueMatcher.match(existingValue, addedValue);
}
}
Aggregations