package com.taobao.loganalyzer.input.tanxclick.parser;
import com.taobao.loganalyzer.input.tanxclick.common.LogField;
import com.taobao.loganalyzer.input.tanxclick.common.LogParser;
import com.taobao.loganalyzer.input.tanxclick.common.LogRecord;
import com.taobao.loganalyzer.input.tanxclick.common.SectionParser;
/**
* Section 4: 匹配Section04解析类
* @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 MatchSectionParser implements SectionParser {
/**
* 对匹配Section04进行解析,版本1.0不记录。
* section4-匹配section为空(不记录)--------允许
*/
public boolean parse(LogParser lp, LogRecord lr) {
if (lp.isCurCharCA()) {
if (!lp.hasNextChar()) return false;
}
else{
String version=(lr.getField("Version")==null)?"":lr.getField("Version").getContent().toString();
//search keyword
lr.addField("SearchKeyword", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
//匹配模式
//lr.addField("MatchMode", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
//匹配子模式
//lr.addField("MatchSubmode", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
//页码
lr.addField("PageNum", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
//每页的广告数
lr.addField("AdsPerPage", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
//相对位置
lr.addField("RelativePosition", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
//区域
lr.addField("Area", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
//广告位分类ID
lr.addField("AdzoneTypeID", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
if("2.1".equals(version)){
//query rewrite的结果
lr.addField("QueryAfterRewrite", new LogField(LogField.TYPE_STRING, lp.getNextCA()));
}else{
lr.addField("QueryAfterRewrite", new LogField(LogField.TYPE_STRING, lp.getNextCB()));
lr.addField("AdRankingOrder", new LogField(LogField.TYPE_STRING, lp.getNextCA()));
}
}
if (lp.isError()) {
return false;
}
return true;
}
}