package com.brucezee.jspider.parser.processor;
/**
* 字段处理器基类
* Created by zhoubing on 2016/6/16.
*/
public abstract class BaseFieldProcessor<T> implements FieldProcessor<T> {
/**
* 将已经格式化好的对象转换成最终结果对象
* @param rootObject 根对象
* @param value 当前值
* @return 处理结果
*/
protected abstract T parse(Object rootObject, String value);
/**
* 格式化对象,将对象转换成最终需要的字段
* @param rootObject 根对象
* @param value 当前值
* @return 格式化后的字符串
*/
protected abstract String format(Object rootObject, String value);
@Override
public T process(Object rootObject, String value) {
if (value == null) {
return null;
}
String formattedValue = format(rootObject, value);
if (formattedValue == null) {
return null;
}
return parse(rootObject, formattedValue);
}
}