public void multiStreamRefs(List<RefStreamRequestContext> refStreamRequests) throws Exception {
List<TenantKeyedColumnValueCallbackStream<TenantIdAndCentricId, ClassAndField_IdKey, ObjectId, byte[], Long>> fowardRefStreams = new ArrayList<>();
List<TenantKeyedColumnValueCallbackStream<TenantIdAndCentricId, ClassAndField_IdKey, ObjectId, byte[], Long>> backRefStreams = new ArrayList<>();
for (RefStreamRequestContext refStreamRequest : refStreamRequests) {
for (String className : refStreamRequest.getReferringClassNames()) {
ClassAndField_IdKey cafik = new ClassAndField_IdKey(className,
refStreamRequest.getReferringFieldName(),
refStreamRequest.getReferringObjectId());
if (refStreamRequest.isBackRefStream()) {
backRefStreams.add(new TenantKeyedColumnValueCallbackStream<>(refStreamRequest.getTenantIdAndCentricId(), cafik,
new NullSwallowingCallbackStream(refStreamRequest)));
} else {
fowardRefStreams.add(new TenantKeyedColumnValueCallbackStream<>(refStreamRequest.getTenantIdAndCentricId(), cafik,
new NullSwallowingCallbackStream(refStreamRequest)));
}
}
}
if (!fowardRefStreams.isEmpty()) {
multiLinks.multiRowGetAll(fowardRefStreams);
}
if (!backRefStreams.isEmpty()) {
multiBackLinks.multiRowGetAll(backRefStreams);
}
for (RefStreamRequestContext refStreamRequest : refStreamRequests) {
refStreamRequest.callback(null);
}
}