Skip to content

Commit

Permalink
emptyRecycleBin
Browse files Browse the repository at this point in the history
  • Loading branch information
urmuzov committed May 4, 2015
1 parent 34527b1 commit 550fc5e
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 17 deletions.
Expand Up @@ -531,23 +531,23 @@ public List<Save> update(PartnerConnection connection, Collection<SObject> objec
return out;
}

public List<Delete> delete(SObject object) throws ConnectionException {
return delete(ImmutableList.of(object), true, false);
public List<Delete> delete(SObject object, boolean emptyRecycleBin) throws ConnectionException {
return delete(ImmutableList.of(object), true, false, emptyRecycleBin);
}

public List<Delete> delete(Collection<SObject> objects) throws ConnectionException {
return delete(objects, true, false);
public List<Delete> delete(Collection<SObject> objects, boolean emptyRecycleBin) throws ConnectionException {
return delete(objects, true, false, emptyRecycleBin);
}

public List<Delete> delete(Collection<SObject> objects, boolean exceptionOnFail, boolean slowDown) throws ConnectionException {
public List<Delete> delete(Collection<SObject> objects, boolean exceptionOnFail, boolean slowDown, boolean emptyRecycleBin) throws ConnectionException {
if (objects.isEmpty()) {
return ImmutableList.of();
}
List<String> ids = Lists.newArrayList();
for (SObject o : objects) {
ids.add(o.getId());
}
return deleteById(ids, exceptionOnFail, slowDown);
return deleteById(ids, exceptionOnFail, slowDown, emptyRecycleBin);
}

public void flush(SObjectType objectMeta) throws ConnectionException {
Expand All @@ -568,18 +568,18 @@ public List<Delete> flush(String objectType, boolean exceptionOnFail) throws Con
for (SObject o : result) {
ids.add(o.getId());
}
return deleteById(ids, exceptionOnFail, false);
return deleteById(ids, exceptionOnFail, false, true);
}

public List<Delete> deleteById(String id) throws ConnectionException {
return deleteById(ImmutableList.of(id));
public List<Delete> deleteById(String id, boolean emptyRecycleBin) throws ConnectionException {
return deleteById(ImmutableList.of(id), emptyRecycleBin);
}

public List<Delete> deleteById(Collection<String> ids) throws ConnectionException {
return deleteById(ids, true, false);
public List<Delete> deleteById(Collection<String> ids, boolean emptyRecycleBin) throws ConnectionException {
return deleteById(ids, true, false, emptyRecycleBin);
}

public List<Delete> deleteById(Collection<String> ids, boolean exceptionOnFail, boolean slowDown) throws ConnectionException {
public List<Delete> deleteById(Collection<String> ids, boolean exceptionOnFail, boolean slowDown, boolean emptyRecycleBin) throws ConnectionException {
if (ids.isEmpty()) {
return ImmutableList.of();
}
Expand All @@ -592,6 +592,9 @@ public List<Delete> deleteById(Collection<String> ids, boolean exceptionOnFail,
logger.info("Deleting {} objects. {} left", ids.size(), idsList.size());
List<String> portion = idsList.subList(0, Math.min(DEFAULT_BATCH_SIZE, idsList.size()));
com.sforce.soap.partner.DeleteResult[] res = connection.delete(portion.toArray(new String[0]));
if (emptyRecycleBin) {
EmptyRecycleBinResult[] emptyRecycleBinResults = connection.emptyRecycleBin(portion.toArray(new String[0]));
}
onApiRequest(ApiRequestType.DELETE);
for (int i = 0; i < res.length; i++) {
com.sforce.soap.partner.DeleteResult r = res[i];
Expand Down
Expand Up @@ -53,21 +53,21 @@ public CommitResult commitDeferred() throws ConnectionException {
int createSize = createPool.size();
int updateSize = updatePool.size();
int deleteSize = deletePool.size();
return commitDeferred(createSize + updateSize + deleteSize > Connection.SLOW_DOWN_OBJECT_COUNT);
return commitDeferred(createSize + updateSize + deleteSize > Connection.SLOW_DOWN_OBJECT_COUNT, deleteSize > Connection.DEFAULT_BATCH_SIZE);
}

public CommitResult commitDeferred(boolean slowDown) throws ConnectionException {
return commitDeferred(slowDown, false);
public CommitResult commitDeferred(boolean slowDown, boolean emptyRecycleBin) throws ConnectionException {
return commitDeferred(slowDown, false, emptyRecycleBin);
}

public CommitResult commitDeferred(boolean slowDown, boolean exceptionOnFail) throws ConnectionException {
public CommitResult commitDeferred(boolean slowDown, boolean exceptionOnFail, boolean emptyRecycleBin) throws ConnectionException {
int createSize = createPool.size();
int updateSize = updatePool.size();
int deleteSize = deletePool.size();
logger.info("Commiting deferred data: creating {}, updating {}, deleteing {}; slowDown: {}; exceptionOnFail: {}", createSize, updateSize, deleteSize, slowDown, exceptionOnFail);

try {
List<Delete> deletes = connection.deleteById(deletePool, exceptionOnFail, slowDown);
List<Delete> deletes = connection.deleteById(deletePool, exceptionOnFail, slowDown, emptyRecycleBin);
List<Save> creates = connection.create(createPool, exceptionOnFail, slowDown);
List<Save> updates = connection.update(updatePool, exceptionOnFail, slowDown);
return new CommitResult(creates, updates, deletes);
Expand Down

0 comments on commit 550fc5e

Please sign in to comment.