private Map<ID, Multimap<UID, STMT>> getInvProperties(MappedClass mappedClass, Collection<ID> objects) {
RDFQuery query = new RDFQueryImpl(connection);
query.where(
Blocks.SPOC,
QNODE.p.in(mappedClass.getInvMappedPredicates()));
if (objects.size() == 1) {
query.set(QNODE.o, objects.iterator().next());
} else {
query.where(QNODE.o.in(objects));
}
CloseableIterator<STMT> stmts = query.construct(Blocks.SPOC);
Map<ID, Multimap<UID, STMT>> invProperties = getPropertiesMap(stmts, true);
for (ID id : objects) {
if (!invProperties.containsKey(id)) {
invProperties.put(id, MultimapFactory.<UID, STMT> create());
}
}
return invProperties;
}