package com.microsoft.bingads.v10.internal.bulk;
import com.microsoft.bingads.v10.bulk.entities.BulkEntity;
import com.microsoft.bingads.v10.internal.bulk.entities.MultiRecordBulkEntity;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
class EntityExtractor {
/**
* Reserved for internal use.
* @param entity
* @return
*/
public static Iterator<BulkEntity> extractChildEntitiesIfNeeded(BulkEntity entity) {
MultiRecordBulkEntity multirecordEntity = null;
if (MultiRecordBulkEntity.class.isInstance(entity)) {
multirecordEntity = MultiRecordBulkEntity.class.cast(entity);
}
// If the entity is a multiline entity and it has all child objects (delete all row was present), just return it
if (multirecordEntity == null || multirecordEntity.allChildrenPresent()) {
List<BulkEntity> entities = new ArrayList<BulkEntity>();
entities.add(entity);
return entities.iterator();
} else {
// If not all child objects are present (there was no delete all row and we only have part of the multiline entity), return child object individually
return new ExtractChildEntitiesIterator(multirecordEntity.getChildEntities().iterator());
}
}
}