use of nl.knaw.huygens.timbuctoo.core.dto.rdf.PredicateInUse in project timbuctoo by HuygensING.
the class TinkerPopOperationsTest method retractPropertyRemovesTheValueTypeFromThePredicateIfItDoesNotApplyToAnyEntity.
@Test
public void retractPropertyRemovesTheValueTypeFromThePredicateIfItDoesNotApplyToAnyEntity() {
TinkerPopGraphManager graphManager = newGraph().wrap();
TinkerPopOperations instance = forGraphWrapper(graphManager);
Vre vre = minimalCorrectVre(instance, "vre");
Collection defaultCollection = vre.getCollectionForTypeName(defaultEntityTypeName(vre));
RdfProperty stringProperty = new RdfProperty("http://example.org/propName", "value", "http://www.w3.org/1999/02/22-rdf-syntax-ns#langString");
RdfProperty floatProperty = new RdfProperty("http://example.org/propName", "1.5", "http://www.w3.org/2001/XMLSchema#float");
instance.assertProperty(vre, "http://example.org/1", stringProperty);
instance.assertProperty(vre, "http://example.org/2", floatProperty);
instance.assertProperty(vre, "http://example.org/3", floatProperty);
instance.retractProperty(vre, "http://example.org/1", stringProperty);
instance.retractProperty(vre, "http://example.org/2", floatProperty);
List<PredicateInUse> predicates = instance.getPredicatesFor(defaultCollection);
assertThat(predicates, hasSize(1));
assertThat(predicates.get(0).getValueTypes(), contains(hasProperty("typeUri", equalTo("http://www.w3.org/2001/XMLSchema#float"))));
}
use of nl.knaw.huygens.timbuctoo.core.dto.rdf.PredicateInUse in project timbuctoo by HuygensING.
the class RdfImportSessionTest method closeCreatesPropertyDescriptionsForEachPredicate.
@Test
public void closeCreatesPropertyDescriptionsForEachPredicate() {
List<PredicateInUse> predicates = Lists.newArrayList();
given(dataStoreOperations.getPredicatesFor(any(Collection.class))).willReturn(predicates);
PropertyFactory propertyFactory = mock(PropertyFactory.class);
ArrayList<CreateProperty> createProperties = Lists.newArrayList();
given(propertyFactory.fromPredicates(predicates)).willReturn(createProperties);
RdfImportSession instance = rdfImportSessionWithPropertyFactory(VRE_NAME, dataStoreOperations, propertyFactory);
instance.commit();
instance.close();
verify(propertyFactory).fromPredicates(predicates);
verify(dataStoreOperations).addPropertiesToCollection(any(Collection.class), eq(createProperties));
}
use of nl.knaw.huygens.timbuctoo.core.dto.rdf.PredicateInUse in project timbuctoo by HuygensING.
the class PropertyFactory method convertToProperty.
private CreateProperty convertToProperty(PredicateInUse pred) {
Stack<ValueTypeInUse> valueTypes = pred.getValueTypes().stream().sorted(comparingInt(o -> o.getEntitiesConnected().size())).collect(toCollection(Stack::new));
ValueTypeInUse type = valueTypes.pop();
valueTypes.forEach(vt -> vt.getEntitiesConnected().forEach(e -> importErrorReporter.entityHasWrongTypeForProperty(e, pred.getPredicateUri(), type.getTypeUri(), vt.getTypeUri())));
return ImmutableCreateProperty.builder().clientName(getPredicateName(pred)).rdfUri(pred.getPredicateUri()).typeUri(type.getTypeUri()).propertyType(getPropertyType(pred.getPredicateUri(), type)).build();
}
use of nl.knaw.huygens.timbuctoo.core.dto.rdf.PredicateInUse in project timbuctoo by HuygensING.
the class PropertyFactory method fromPredicates.
public List<CreateProperty> fromPredicates(List<PredicateInUse> predicates) {
List<CreateProperty> result = predicates.stream().map(pred -> convertToProperty(pred)).collect(toList());
Set<String> encounteredLocalnames = new HashSet<>();
for (int i = 0; i < result.size(); i++) {
CreateProperty createProperty = result.get(i);
if (encounteredLocalnames.contains(createProperty.getClientName())) {
createProperty = ImmutableCreateProperty.copyOf(createProperty).withClientName(createProperty.getRdfUri());
result.set(i, createProperty);
}
encounteredLocalnames.add(createProperty.getClientName());
}
return result;
}
Aggregations