validateArguments(args, clazz, ids, objects, options);
return doInCompass(new CompassCallback() {
public Object doInCompass(CompassSession session) throws CompassException {
CompassOperations compassOperations = session;
if (!objects.isEmpty()) {
for (Iterator iter = objects.iterator(); iter.hasNext(); ) {
compassOperations.delete(iter.next());
}
return null;
}
CompassQuery query = null;
CompassQueryBuilder queryBuilder = session.queryBuilder();
if (args.length == 0) {
query = queryBuilder.matchAll();
}
if (clazz != null && ids.isEmpty()) {
query = queryBuilder.matchAll().setTypes(new Class[] {clazz});
}
if (query != null) {
compassOperations.delete(query);
return null;
}
for (Iterator iter = ids.iterator(); iter.hasNext(); ) {
compassOperations.delete(clazz, iter.next());
}
return null;
}
});
}