package com.taobao.loganalyzer.input.tanxpv.parser;
import java.util.ArrayList;
import java.util.List;
import com.taobao.loganalyzer.input.tanxpv.common.LogField;
import com.taobao.loganalyzer.input.tanxpv.common.LogParser;
import com.taobao.loganalyzer.input.tanxpv.common.LogRecord;
import com.taobao.loganalyzer.input.tanxpv.common.SectionParser;
/**
* Section 4:广告位Section解析类。该Section保存和这个广告有关的信息。
* @see <a href="http://sps.corp.alimama.com/ad/ADExchange/DocLib/Tan(X)%E7%B3%BB%E7%BB%9F%E6%97%A5%E5%BF%97%E8%AE%BE%E8%AE%A1.pdf">点击日志格式</a>
* @author kangtian
*
*/
public class AdzoneSectionParser implements SectionParser {
/**
* 对广告位Section进行解析
* d) section4-广告位section为空--------不允许
*/
public boolean parse(LogParser lp, LogRecord lr) {
if (lp.isCurCharCA()) {
return false ;
// if (!lp.hasNextChar()) return false;
}
else {
// 广告位类目
lr.addField("AdzoneCategory", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
// 广告位位置
lr.addField("AdzonePosition", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
// 广告位size code
lr.addField("AdzoneSize", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
// 广告位大小
lr.addField("AdzoneArea", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
// 是否首屏
lr.addField("IsFirstPage", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
// 广告位展现方式
lr.addField("ViewMode", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
// 广告位最低限价(最低竞价额)
lr.addField("LimitPrice", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
// 广告位属性
lr.addField("AdzoneAttribute", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
if (lr.version_cmp("1.4") >= 0) {////1.4以后版本的
// 广告位类型
lr.addField("AdzoneType", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
// 广告位投放尺寸
lr.addField("AdzonePutOnSize", new LogField(LogField.TYPE_STRING, lp.getNextCA()));
} else { //1.4前版本的
// 广告位类型
lr.addField("AdzoneType", new LogField(LogField.TYPE_STRING, lp.getNextCA()));
}
}
if (lp.isError()) {
return false;
}
return true;
}
}