// Create statement text to select the active creative wrappers for the
// given label.
String statementText =
"WHERE status = :status AND labelId = :labelId LIMIT 500";
Statement filterStatement =
new StatementBuilder(statementText)
.putValue("status", CreativeWrapperStatus.ACTIVE.toString())
.putValue("labelId", labelId)
.toStatement();
// Set defaults for page and offset.
CreativeWrapperPage page = new CreativeWrapperPage();
int offset = 0;
int i = 0;
List<Long> creativeWrapperIds = new ArrayList<Long>();
do {
// Create a statement to page through creative wrappers.
filterStatement.setQuery(statementText + " OFFSET " + offset);
// Get creative wrappers by statement.
page = creativeWrapperService.getCreativeWrappersByStatement(filterStatement);
if (page.getResults() != null) {
for (CreativeWrapper creativeWrapper: page.getResults()) {
System.out.printf("%d) Creative wrapper with ID \"%s\" applying to label"
+ " \"%s\" will be deactivated.\n", i++, creativeWrapper.getId(),
creativeWrapper.getLabelId());
creativeWrapperIds.add(creativeWrapper.getId());
}
}
offset += 500;
} while (offset < page.getTotalResultSetSize());
System.out.println(
"Number of creative wrappers to be deactivated: " + creativeWrapperIds.size());
if (creativeWrapperIds.size() > 0) {
// Modify statement for action.
filterStatement.setQuery(
"WHERE id IN (" + StringUtils.join(creativeWrapperIds, ",") + ")");
// Create action.
DeactivateCreativeWrappers action = new DeactivateCreativeWrappers();