工具的序列化

自定义的工具支持保存为模型文件(*.xml)。将工具参数值保存为 *.xml 中的字符串叫序列化,从 *.xml 中字符串解析为对应参数值叫反序列化。

点击此处下载示例代码

1. 继承 TargetStringConvert 类

iDesktopX 提供一个可供扩展的抽象类 TargetStringConvertor.java,您可以选择直接继承 TargetStringConvert,实现对应的方法。

CodeExamples 示例代码

public class TableLineItemStringConvertor extends TargetStringConvertor {
    @Override
    protected String internalValueTo(TableLineItem tableLineItem) {
        return tableLineItem.getKey() + "," + tableLineItem.getValue();
    }

    @Override
    protected TableLineItem internalValueOf(String s) {
        String[] split = s.split(",");
        TableLineItem tableLineItem = new TableLineItem();
        tableLineItem.setKey(split[0]);
        tableLineItem.setValue(split[1]);
        return tableLineItem;
    }

    @Override
    public Class getSourceType() {
        return TableLineItem.class;
    }
}

2. 注册:

新建 resources/META-INF/services/com.supermap.sps.core.convertor.IConvertor 文件,并完成注册。

SerializedRegistration