没有合适的资源?快使用搜索试试~ 我知道了~
首页kettle插件的制作
资源详情
资源评论
资源推荐
kettle 插件的制作 收藏
插件的制作
1. 概述
自制一个装换的插件至少需要实现四个类(package be.ibridge.kettle.trans.step)
stepMetaInterface:元数据的处理,加载 xml,校验,主要是对一个步骤的定义的基本数据。
stepDataInterface:数据处理涉及的具体数据,以及对数据的状态的设置和回收。
stepInterface:负责数据处理,转换和流转。这里面主要由 processRow()方法来处理。
StepDialogInterface:提供 GUI/dialog,编辑步骤的元数据。
对于以上四个接口的实现,都有相应的基类,具体的步骤只需要继承基类和实现相应的接
口即可。
对于各个类的命名最好是按照以下规则:
stepInterface 的实现类以插件的功能相关命名:*.java
stepDataInterface 的实现类:*Data.java
stepMetaInterface 实现类:*Meta.java
StepDialogInterface 的实现类:*Dialog.java
2. 制作一个简单的插件(实现在指定的字段上追加一个字符串)
1. stepMetaInterface 实现类 AddStrMeta.java:
public class AddStrMeta extends BaseStepMeta implements StepMetaInterface {
private ValueMetaAndData value;
private String field;
public AddStrMeta() {
super(); // allocate BaseStepInfo
}
public ValueMetaAndData getValue() {
return value;
}
public void setValue(ValueMetaAndData value) {
this.value = value;
}
public void getFields(RowMetaInterface r, String origin,
RowMetaInterface[] info, StepMeta nextStep, VariableSpace space) {
if (value != null) {
ValueMetaInterface v = value.getValueMeta();
v.setOrigin(origin);
r.addValueMeta(v);
}
}
public Object clone() {
Object retval = super.clone();
return retval;
}
public void loadXML(Node stepnode, List<DatabaseMeta> databases,
Map<String, Counter> counters) throws KettleXMLException {
//
}
public void check(List<CheckResultInterface> remarks, TransMeta transmeta,
StepMeta stepMeta, RowMetaInterface prev, String input[],
String output[], RowMetaInterface info) {
CheckResult cr;
if (prev == null || prev.size() == 0) {
cr = new CheckResult(CheckResult.TYPE_RESULT_WARNING,
"Not receiving any fields from previous steps!", stepMeta);
remarks.add(cr);
}
}
//读取 StepDialogInterface 界面上设置的元数据
public void readRep(Repository rep, long id_step,
List<DatabaseMeta> databases, Map<String, Counter> counters)
throws KettleException {
field = rep.getStepAttributeString(id_step, "field");
}
//把 StepDialogInterface 界面上设置的元数据保存
public void saveRep(Repository rep, long id_transformation, long id_step)
throws KettleException {
rep.saveStepAttribute(id_transformation, id_step, "field", field);
}
public void setDefault() {
}
//获取 StepDialog
public StepDialogInterface getDialog(Shell shell, StepMetaInterface meta,
TransMeta transMeta, String name) {
return new AddStrDialog(shell, meta, transMeta, name);
}
//获取步骤
public StepInterface getStep(StepMeta stepMeta,
StepDataInterface stepDataInterface, int cnr, TransMeta transMeta,
Trans disp) {
return new AddStr(stepMeta, stepDataInterface, cnr, transMeta, disp);
}
//获取步骤数据
public StepDataInterface getStepData() {
剩余15页未读,继续阅读
萨普ERP讲堂
- 粉丝: 3
- 资源: 25
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- ExcelVBA中的Range和Cells用法说明.pdf
- 基于单片机的电梯控制模型设计.doc
- 主成分分析和因子分析.pptx
- 共享笔记服务系统论文.doc
- 基于数据治理体系的数据中台实践分享.pptx
- 变压器的铭牌和额定值.pptx
- 计算机网络课程设计报告--用winsock设计Ping应用程序.doc
- 高电压技术课件:第03章 液体和固体介质的电气特性.pdf
- Oracle商务智能精华介绍.pptx
- 基于单片机的输液滴速控制系统设计文档.doc
- dw考试题 5套.pdf
- 学生档案管理系统详细设计说明书.doc
- 操作系统PPT课件.pptx
- 智慧路边停车管理系统方案.pptx
- 【企业内控系列】企业内部控制之人力资源管理控制(17页).doc
- 温度传感器分类与特点.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1