package com.microsoft.bingads.v11.internal.bulk; import com.microsoft.bingads.internal.functionalinterfaces.BiConsumer; import com.microsoft.bingads.internal.functionalinterfaces.Function; public class ConditionalBulkMapping<TEntity, TProperty> implements BulkMapping<TEntity> { private SimpleBulkMapping<TEntity, TProperty> simpleMapping; private Function<TEntity, Boolean> condition; public ConditionalBulkMapping(String csvHeader, Function<TEntity, Boolean> condition, Function<TEntity, TProperty> fieldToCsv, BiConsumer<String, TEntity> csvToField) { simpleMapping = new SimpleBulkMapping<TEntity, TProperty>(csvHeader, fieldToCsv, csvToField); this.condition = condition; } @Override public void convertToCsv(TEntity entity, RowValues values) { if (condition.apply(entity)) { simpleMapping.convertToCsv(entity, values); } } @Override public void convertToEntity(RowValues values, TEntity entity) { if (condition.apply(entity)) { simpleMapping.convertToEntity(values, entity); } } }