【仅供内部供应商使用,不提供对外解答和培训】
【仅供内部供应商使用,不提供对外解答和培训】
增加报表单元格支持的元素类型。
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>