knime扩展新节点的规范是什么

扩展新节点我们应该遵守什么原则,具体有哪些规范?

包含实现工作流程中的新节点所需的所有类。
它包含将新节点插入工作流程时将实例化的所有类。并且它提供了必须扩展的抽象类{@link org.knime.core.node.NodeModel},{@ link org.knime.core.node.NodeView}和{@link org.knime.core.node.NodeDialogPane}当实现一种新型的节点时。

节点通过端口相互连接。通过这些连接交换数据或模型。节点执行特定的任务,例如读数据,分析,显示,写出数据等。最终类{@link org.knime.core.node.Node},以及抽象的{@link org.knime.core .node.NodeModel},{@ link org.knime.core.node.NodeDialog}和{@link org.knime.core.node.NodeView}完成了连接节点中新节点所需的大部分基础工作。工作流程。

节点具有不同的状态: 不可执行 , 可执行 或已 执行 。直到所有端口都连接到先前节点并设置了所有必需的参数(取决于特定节点模型的任务)后,该节点才可执行。如果节点是可执行的,则可以调用执行,导致该节点读取{@link org.knime.core.data.DataTable} s(请参阅{@link org.knime.core.data data}数据包),并且从其输入中进行建模,以进行数据和/或模型应做的一切(再次取决于节点模型的具体化身),并提供新的{@link org.knime.core.data.DataTable }在其输出端口上。如果执行成功完成,则该节点处于执行状态 。

节点应实现以下“模型-视图-控制器”概念。该模型计算并存储节点的内容。视图提供了对模型实际状态的视图;它不会改变模型。可以有多个视图,可以为模型提供不同类型的视图。控制器是修改模型的部分。在我们的情况下,有多个控制器。{@link org.knime.core.node.NodeDialogPane}实现了一个控制器,该控制器在{@link org.knime.core.node.NodeModel}中设置参数之后才能执行。
在这里插入图片描述

对话框和模型之间的通信是通过{@link org.knime.core.node.NodeSettings NodeSettings}对象进行的。对话框将在打开之前读取模型的当前设置,并且所有用户设置都将被转移回模型中(作为副作用,您可能不会存储对话框未处理的节点模型的设置,因为) 。为此,派生的对话框和模型必须实现加载和保存设置方法,该模型还将具有验证设置方法。这些对象的传输在抽象类中实现。

一个新的Node实现(这里称为 MyNode …)必须提供的东西:
 MyNodeModel 从{@link org.knime.core.node.NodeModel NodeModel}派生的新类,表示节点的模型。该MyNodeModel至少必须实现:
 execute(…)在期间调用的执行节点实际任务的方法executeNode()。它从节点的输入获取{@link org.knime.core.data.DataTable}作为参数,并且必须为节点的输出提供{@link org.knime.core.data.DataTable} s作为结果。 。
 一种方法configure(…),提供有关{@link org.knime.core.data.DataTable}的元信息,这些信息将在执行期间(在执行之前的某个时间)生成。某些节点可以在设置参数之后或在收到有关传入{@link org.knime的信息之后)预先提供有关它们将创建的{@link org.knime.core.data.DataTable}的结构的信息。 .core.data.DataTable}。由于此方法,他们应该在{@link org.knime.core.data.DataTableSpec} s中返回此元信息。其他人刚回来null。另外,此方法必须指示模型是否已接收所有设置并准备执行。
 一种saveSettingsTo(…) 将模型的当前用户设置写到{@link org.knime.core.node.NodeSettings}对象中的方法。
 一种validateSettings(…) 检查设置对象以告知其中的设置是否完整和一致的方法。
 一种loadValidatedSettings(…) 从有效的设置对象在模型的内部设置中设置新值的方法。
 一种reset() 清除所有内部数据的方法,这些内部数据取决于前者的任何传入数据或从这些数据中派生而来。
 一种saveInternalSettings(…) 必须将所有从输入数据派生的内部数据(基本上是在期间清除的数据reset())保存到磁盘上的方法。
 方法loadInternalSettings(…) 必须能够读回期间写入的数据saveInternalSettings(…)。之后loadInternalSettings(…),模型必须与执行后处于相同状态。loadInternalSettings(…)在加载工作流以在关闭流之前重新建立所有节点的状态时调用。
 一类新的MyNodeFactory 从{@link org.knime.core.node.NodeFactory NodeFactory}导出的该返回新的实例MyNodeModel,MyNodeView以及MyNodeDialog,如果实现。一个工厂创建的实例必须协同工作,并为该节点的特定化身形成“模型-视图-控制器”概念。NodeView并且NodeDialog是可选的(工厂可以返回null),必须始终提供NodeModel。
 另外,MyNodeFactory.xml 必须创建一个文件,其中包含节点的说明,其功能,端口,视图和对话框选项。该信息将从工厂读取,并可从工厂检索。请阅读此处以了解NodeFactory.xml文件的内容和结构。
另外,节点应该考虑提供一个{@link org.knime.core.node.property.hilite.HiLiteHandler HiLiteHandler}。这些是独立的单独实例,将每个数据点的Hilite状态存储在{@link org.knime.core.data.DataTable}中。任何(部分)节点都可以向Hilite处理程序询问给定行的此属性,它也可以注册为侦听器,以通知任何行的属性发生任何更改。另一方面,每个节点都可以在处理程序中设置新属性,并且可以期望这些属性显示在侦听的所有节点中。
新的hilite处理程序实例必须由创建{@link org.knime.core.data.DataTable} s并在其输出处带有新{@link org.knime.core.data.RowKey}的节点创建。在方法{@link org.knime.core.node.NodeModel#getOutHiLiteHandler(int)}中,模型为每个输出端口决定{@link org.knime.core.node.property.hilite.HiLiteHandler HiLiteHandler}一起使用在此输出端口提供的{@link org.knime.core.data.DataTable}。抽象的{@link org.knime.core.node.NodeModel}中的默认实现只是通过在输入端口“ 0”处接收的{@link org.knime.core.node.property.hilite.HiLiteHandler HiLiteHandler}传递。如果没有输入端口,它将实例化一个新的{@link org.knime.core.node.property.hilite.HiLiteHandler HiLiteHandler},因为它必须是数据流的开始。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值