【仅供内部供应商使用,不提供对外解答和培训】
【仅供内部供应商使用,不提供对外解答和培训】
增加报表单元格支持的元素类型。
package com.fr.report.fun;
import com.fr.stable.fun.mark.Mutable;
import com.fr.stable.xml.XML;
import com.fr.stable.xml.XMLable;
/**
* Created by richie on 16/4/22.
* 单元格元素接口
*/
public interface ObjectMakeProvider extends Mutable, XMLable {
String MARK_STRING = "ObjectMakeProvider";
int CURRENT_LEVEL = 1;
/**
* 这个元素的xml标记
* @return 具有唯一性的字符串
*/
String xmlTag();
/**
* 将对象封装为可写的xml对象
* @param obj 待封装的对象
* @return 可写的xml对象
*/
XML asXMLObject(Object obj);
/**
* @see ObjectMakeProvider#asXMLObject(Object)
* 指定的对象是否可以封装为可写的xml对象
* @param obj 待判断的对象
* @return 如果该对象符合封装条件,则会后续调用封装方法
*/
boolean accept(Object obj);
/**
* 克隆当前对象
* @return 克隆后的对象
*/
ObjectMakeProvider clone();
}
如果这个扩展的单元格元素需要参与计算,需要实现Calculable接口:
package com.fr.report.xml;
import com.fr.script.Calculator;
import com.fr.stable.xml.XMLable;
/**
* Created by richie on 16/4/25.
* 可计算的对象
*/
public interface Calculable<T> extends XMLable {
/**
* 计算结果
*
* @param cal 算子
* @return 计算后的值
*/
T result(Calculator cal);
}
<extra-report> <ObjectMakeProvider class="com.fr.plugin.xxx.youclassname"/> </extra-report>