[英]How to set a custom class property into a custom action?
今天,我想創建一個自定義安裝操作,其中包含我的自定義類的實例作為屬性。 該定制類通過install4j的Set Varaible操作實例化,因此它也被設置為安裝上下文。 現在,我想將此實例傳遞給自定義操作。 因此,我已經使用getter()和setter()方法實現了該動作,並創建了相應的ActionBeanInfo類。 如果將動作放入IDE的項目配置中,則無法為自定義類的配置字段設置任何值。 也許我必須為我的自定義類實現某種PropertyConverter類? 我查看了示例代碼,但未找到任何解決方案。 那么我如何獲得這項工作呢?
AbstractInstallAction實現:
public class MyCustomAction extends AbstractInstallAction {
private MyCustomClass instance;
@Override
public boolean install(InstallerContext installerContext) throws UserCanceledException {
...
// do some stuff with the MyCustomClass instance
...
}
public MyCustomClass getMyCustomClass() {
return instance;
}
public void setMyCustomClass(MyCustomClass instance) {
this.instance= instance;
}
}
ActionBeanInfo實現:
public class MyCustomActionBeanInfo extends ActionBeanInfo {
private static final String PROPERTY_CUSTOM_CLASS = "myCustomClass";
public MyCustomActionBeanInfo () {
super("Custom Action.", "This action will do some custom stuff.", null,
true, false, null, MyCustomAction.class);
addPropertyDescriptor(create(PROPERTY_CUSTOM_CLASS, getBeanClass(), "Custom class",
"Sets the custom class to do some custom stuff during installation."));
}
}
您必須編寫一個屬性轉換器,可以將MyCustomCass
實例轉換為字符串,還可以將字符串轉換為實例MyCustomClass
。
您必須實現的接口是com.install4j.api.beaninfo.PropertyConverter
。 一旦實現了屬性轉換器,就可以像下面這樣在BeanInfo類的構造函數中注冊它:
setPropertyConverters(new PropertyConverter[] {propertyConverters});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.