【仅供内部供应商使用,不提供对外解答和培训】

Page tree

【仅供内部供应商使用,不提供对外解答和培训】

Skip to end of metadata
Go to start of metadata

接口作用

增加报表单元格支持的元素类型。

接口内容

ObjectMakeProvider
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>
  • No labels