类别

版本

您正在查看9.2 -版本的RapidMiner开发人员文档点击这里查看最新版本

创建自定义配置器

假设您想要创建一个RapidMiner扩展,该扩展提供一个从CRM系统读取数据的操作符。您的操作员需要访问CRM的信息,例如URL、用户名或密码。一种方法是将文本字段添加到操作符的参数中,并让用户键入所需的信息。虽然这看起来很方便,但如果您想在其他RapidMiner进程或操作符中使用相同的信息,那么它就会变得相当多余,因为您必须多次输入信息。或者,您可以全局定义CRM连接,并让用户选择从哪个CRM获取数据。

在这种情况下配置器会派上用场的。全局配置器全局管理某种类型的项目,并允许您通过自定义配置对话框创建,编辑和删除它们。对于本例,我们将实现CRM条目的配置器,该配置器允许我们使用可通过连接菜单。此外,配置器可以与下拉列表一起使用,用户可以通过操作符的参数轻松选择连接。

使用

为了实现你自己的配置器,你需要知道以下类:

  • 可配置的是可以通过a修改的项目吗配置器
  • 配置器实例化并配置的子类可配置的
  • ConfigurationManager用于注册配置器在RapidMiner。
  • ParameterTypeConfigurable是一个ParameterType这为配置器创建了一个下拉列表,可以在操作符的参数设置中使用。

首先,创建一个描述单个CRM连接项的新类,它实现可配置的接口。最佳实践是扩展AbstractConfigurable相反,因为这样做可以避免处理参数值。然后,您不必编写处理实际配置的代码:

公共类CRMConfigurable extends AbstractConfigurable {@Override公共字符串getTypeId(){返回"CRM";} /**此可配置的实际业务逻辑*/ public CRMConnection connect() {String username = getParameter(“用户名”);字符串url = getParameter(" url ");URLConnection con = new URL(URL).openConnection();/ /……//处理连接}}

接下来,我们要扩展AbstractConfigurator类。每个配置器都有一个惟一的类型id,用于标识RapidMiner中的配置器的字符串和将用作从资源文件检索本地化信息的基本密钥的I18NBaseKey。我们还想加一些ParameterTypes,因为它们指定了如何通过配置对话框编辑条目。在我们的示例中,我们需要参数类型描述用于CRM连接的URL、用户名和密码。对于这个问题,您只需重写getParameterTypes方法并添加一个新的ParameterTypeString,具体实现如下:

公共类CRMConfigurator扩展AbstractConfigurator{@重写公共类 getConfigurableClass(){返回CRMConfigurable.class;} @覆盖公共字符串getI18NBaseKey(){返回“crmconfig”;} @Override public List getParameterTypes(ParameterHandler ParameterHandler) {List参数= new ArrayList();参数。add(new ParameterTypeString("URL", "要连接的URL", false));参数。add(new ParameterTypeString("Username", " CRM的用户名",false));参数。add(new ParameterTypePassword("Password", "The Password for The CRM"));返回参数; } @Override public String getTypeId() { return "CRM"; } }

除了方法之外getTypeIdgetI18NBaseKeygetParameterTypes,您还必须实现该方法getConfigurableClass,它只是返回使用的可配置实现类(在本例中为类)CRMConfigurable).

接下来,向资源文件中添加本地化信息GUIXXX.xml,其中“XXX”是扩展名。

gui.configurable.crmconfig.name = CRM Connection gui.configurable.crmconfig.description =描述CRM连接的条目。Gui.configurable.crmconfig.icon = data.png

要访问新的配置器,请将其注册到ConfigurationManager。这一步很重要,因为它让RapidMiner知道新的配置器,以便CRM操作员和RapidMiner的其他部分可以访问它。要做到这一点,只需调用注册方法在初始化过程中。这应该在initPlugin方法PluginInit类:

公共静态无效initPlugin() {ConfigurationManager.getInstance()。登记(新CRMConfigurator ());}

您现在可以打开管理连接对话框连接菜单并创建一个CRM连接。

现在,使用连接作为连接到CRM的操作员的参数。为此,重写该方法getParameterTypes并添加ParameterTypeConfigurable

@Override public List getParameterTypes() {List types = super.getParameterTypes();ParameterType type = new ParameterTypeConfigurable(PARAMETER_CONFIG,“选择一个CRM连接”,“CRM”);types.add(类型);返回类型;}

现在您已经成功创建了自己的配置器,可以使用它为您的操作员配置CRM条目。