package com.microsoft.bingads.v10.bulk.entities;
import com.microsoft.bingads.v10.bulk.BulkFileReader;
import com.microsoft.bingads.v10.bulk.BulkFileWriter;
import com.microsoft.bingads.v10.bulk.BulkServiceManager;
import com.microsoft.bingads.v10.campaignmanagement.CallAdExtension;
import com.microsoft.bingads.v10.bulk.BulkOperation;
import com.microsoft.bingads.v10.internal.bulk.StringExtensions;
import com.microsoft.bingads.v10.internal.bulk.StringTable;
import com.microsoft.bingads.v10.internal.bulk.BulkMapping;
import com.microsoft.bingads.v10.internal.bulk.MappingHelpers;
import com.microsoft.bingads.v10.internal.bulk.RowValues;
import com.microsoft.bingads.v10.internal.bulk.SimpleBulkMapping;
import com.microsoft.bingads.internal.functionalinterfaces.BiConsumer;
import com.microsoft.bingads.internal.functionalinterfaces.Function;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* Represents a call ad extension. This class exposes {@link #setCallAdExtension} and {@link #getCallAdExtension}
* that can be used to read and write fields of the Call Ad Extension record in a bulk file.
*
* For more information, see Call Ad Extension at
* <a href="http://go.microsoft.com/fwlink/?LinkID=620234">http://go.microsoft.com/fwlink/?LinkID=620234</a>
*
* @see BulkServiceManager
* @see BulkOperation
* @see BulkFileReader
* @see BulkFileWriter
*/
public class BulkCallAdExtension extends BulkAdExtension<CallAdExtension> {
/**
* Gets the call ad extension.
*/
public CallAdExtension getCallAdExtension() {
return this.getAdExtension();
}
/**
* Sets the call ad extension.
*/
public void setCallAdExtension(CallAdExtension value) {
this.setAdExtension(value);
}
private static List<BulkMapping<BulkCallAdExtension>> MAPPINGS;
static {
List<BulkMapping<BulkCallAdExtension>> m = new ArrayList<BulkMapping<BulkCallAdExtension>>();
m.add(new SimpleBulkMapping<BulkCallAdExtension, String>(StringTable.PhoneNumber,
new Function<BulkCallAdExtension, String>() {
@Override
public String apply(BulkCallAdExtension c) {
return c.getCallAdExtension().getPhoneNumber();
}
},
new BiConsumer<String, BulkCallAdExtension>() {
@Override
public void accept(String v, BulkCallAdExtension c) {
c.getCallAdExtension().setPhoneNumber(v);
}
}
));
m.add(new SimpleBulkMapping<BulkCallAdExtension, String>(StringTable.CountryCode,
new Function<BulkCallAdExtension, String>() {
@Override
public String apply(BulkCallAdExtension c) {
return c.getCallAdExtension().getCountryCode();
}
},
new BiConsumer<String, BulkCallAdExtension>() {
@Override
public void accept(String v, BulkCallAdExtension c) {
c.getCallAdExtension().setCountryCode(v);
}
}
));
m.add(new SimpleBulkMapping<BulkCallAdExtension, String>(StringTable.IsCallOnly,
new Function<BulkCallAdExtension, String>() {
@Override
public String apply(BulkCallAdExtension c) {
return StringExtensions.toBooleanBulkString(c.getCallAdExtension().getIsCallOnly());
}
},
new BiConsumer<String, BulkCallAdExtension>() {
@Override
public void accept(String v, BulkCallAdExtension c) {
c.getCallAdExtension().setIsCallOnly(StringExtensions.<Boolean>parseOptional(v, new Function<String, Boolean>() {
@Override
public Boolean apply(String value) {
return Boolean.parseBoolean(value);
}
}));
}
}
));
m.add(new SimpleBulkMapping<BulkCallAdExtension, String>(StringTable.IsCallTrackingEnabled,
new Function<BulkCallAdExtension, String>() {
@Override
public String apply(BulkCallAdExtension c) {
return StringExtensions.toBooleanBulkString(c.getCallAdExtension().getIsCallTrackingEnabled());
}
},
new BiConsumer<String, BulkCallAdExtension>() {
@Override
public void accept(String v, BulkCallAdExtension c) {
c.getCallAdExtension().setIsCallTrackingEnabled(StringExtensions.<Boolean>parseOptional(v, new Function<String, Boolean>() {
@Override
public Boolean apply(String value) {
return Boolean.parseBoolean(value);
}
}));
}
}
));
m.add(new SimpleBulkMapping<BulkCallAdExtension, String>(StringTable.RequireTollFreeTrackingNumber,
new Function<BulkCallAdExtension, String>() {
@Override
public String apply(BulkCallAdExtension c) {
return StringExtensions.toBooleanBulkString(c.getCallAdExtension().getRequireTollFreeTrackingNumber());
}
},
new BiConsumer<String, BulkCallAdExtension>() {
@Override
public void accept(String v, BulkCallAdExtension c) {
c.getCallAdExtension().setRequireTollFreeTrackingNumber(StringExtensions.<Boolean>parseOptional(v, new Function<String, Boolean>() {
@Override
public Boolean apply(String value) {
return Boolean.parseBoolean(value);
}
}));
}
}
));
MAPPINGS = Collections.unmodifiableList(m);
}
@Override
public void processMappingsFromRowValues(RowValues values) {
CallAdExtension extension = new CallAdExtension();
extension.setType("CallAdExtension");
this.setAdExtension(extension);
super.processMappingsFromRowValues(values);
MappingHelpers.convertToEntity(values, MAPPINGS, this);
}
@Override
public void processMappingsToRowValues(RowValues values, boolean excludeReadonlyData) {
this.validatePropertyNotNull(this.getCallAdExtension(), "CallAdExtension");
super.processMappingsToRowValues(values, excludeReadonlyData);
MappingHelpers.convertToValues(this, values, MAPPINGS);
}
}