algoliasearch/src/offline/java/com/algolia/search/saas/MirroredIndex.java
@Override
    public Request getObjectsAsync(final @NonNull Collection<String> objectIDs, final @Nullable Collection<String> attributesToRetrieve, @Nullable RequestOptions requestOptions, @NonNull CompletionHandler completionHandler) {
        if (!mirrored) {
            return super.getObjectsAsync(objectIDs, attributesToRetrieve, requestOptions, completionHandler);
        } else {
            return new OnlineOfflineGetObjectsRequest(new ArrayList(objectIDs), new ArrayList(attributesToRetrieve), requestOptions, completionHandler).start();
        }
    }
@Override
    public Request getObjectsAsync(final @NonNull Collection<String> objectIDs, final @Nullable Collection<String> attributesToRetrieve, @Nullable RequestOptions requestOptions, @NonNull CompletionHandler completionHandler) {
        if (!mirrored) {
            return super.getObjectsAsync(objectIDs, attributesToRetrieve, requestOptions, completionHandler);
        } else {
            return new OnlineOfflineGetObjectsRequest(new ArrayList(objectIDs), new ArrayList(attributesToRetrieve), requestOptions, completionHandler).start();
        }
    }
Get individual objects from the online API, falling back to the local mirror in case of error (when enabled).

@param objectIDs Identifiers of objects to retrieve.
@param attributesToRetrieve Attributes to retrieve. If `null` or if at least one item is `*`, all retrievable
attributes will be retrieved.
@param requestOptions Request-specific options.
@param completionHandler The listener that will be notified of the request's outcome.
@return A cancellable request.