2
今天我想創建一個自定義安裝操作,其中包含我的自定義類的實例作爲屬性。自定義類由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."));
}
}
是否建議將PropertyConverter直接實現到ActionBean中,清單? – Hardie82
這個bean信息只在設計時才起作用,在那個時候沒有安裝上下文。在動作bean上實現PropertyConverted是不可能的,因爲在bean信息的構造器中沒有bean實例。 –
好的,我今天會嘗試。對於我的自定義類,它必須是可序列化的才能將其放到安裝程序上下文變量中? – Hardie82