package us.codecraft.webmagic;
import java.util.HashMap;
import java.util.Map;
/**
* 保存抽取结果的类,由PageProcessor处理得到,传递给{@link us.codecraft.webmagic.pipeline.Pipeline}进行持久化。<br>
* @author code4crafter@gmail.com <br>
* Date: 13-7-25 <br>
* Time: 下午12:20 <br>
*/
public class ResultItems {
private Map<String, Object> fields = new HashMap<String, Object>();
private Map<String, String> httpHeaderResponses = new HashMap<String, String>();
private Request request;
private boolean skip;
@SuppressWarnings("unchecked")
public <T> T get(String key) {
Object o = fields.get(key);
if (o == null) {
return null;
}
return (T) fields.get(key);
}
public Map<String, Object> getAll() {
return fields;
}
public <T> ResultItems put(String key, T value) {
fields.put(key, value);
return this;
}
public Request getRequest() {
return request;
}
public ResultItems setRequest(Request request) {
this.request = request;
return this;
}
public ResultItems putHttpHeaderResponse(String key, String value) {
this.httpHeaderResponses.put(key, value);
return this;
}
public String getHttpHeaderResponse(String key) {
return this.httpHeaderResponses.get(key);
}
public Map<String, String> getAllHttpHeaderResponses() {
return this.httpHeaderResponses;
}
/**
* 是否忽略这个页面,用于pipeline来判断是否对这个页面进行处理
* @return 是否忽略 true 忽略
*/
public boolean isSkip() {
return skip;
}
/**
* 设置是否忽略这个页面,用于pipeline来判断是否对这个页面进行处理
* @param skip
* @return this
*/
public ResultItems setSkip(boolean skip) {
this.skip = skip;
return this;
}
}