は、一般的なVMware構成ファイルの以下の部分を考慮してください(* .vmxファイル):Javaプロパティファイルで指定されたBeanを逆シリアル化する方法は?
memsize = "2048"
MemTrimRate = "-1"
mks.enable3d = "TRUE"
nvram = "Windows Server 2003 Standard Edition.nvram"
pciBridge0.pciSlotNumber = "17"
pciBridge0.present = "TRUE"
pciBridge4.functions = "8"
pciBridge4.pciSlotNumber = "18"
pciBridge4.present = "TRUE"
pciBridge4.virtualDev = "pcieRootPort"
pciBridge5.functions = "8"
pciBridge5.pciSlotNumber = "19"
pciBridge5.present = "TRUE"
pciBridge5.virtualDev = "pcieRootPort"
pciBridge6.functions = "8"
pciBridge6.pciSlotNumber = "20"
pciBridge6.present = "TRUE"
pciBridge6.virtualDev = "pcieRootPort"
pciBridge7.functions = "8"
pciBridge7.pciSlotNumber = "32"
pciBridge7.present = "TRUE"
pciBridge7.virtualDev = "pcieRootPort"
replay.filename = ""
replay.supported = "FALSE"
roamingVM.exitBehavior = "go"
この構成を観察することによって、人は次のシグネチャでPciBridge
のJava Beanタイプを想像することができます:
class PciBridge
{
public int pciSlotNumber; // or public int getPciSlotNumber(){...} and public void setPciSlotNumber(int v){...}
public boolean present; // or get/is/set methods
public int functions; // or get/set methods
public String virtualDev; // or get/set methods
}
public <T> List<T> getObjects(final String prop, Class<T> clazz);
:
また、VMXファイルを読み込むための責任を負う構成マネージャは、次のメソッドを公開かもしれません3210
上記の設定では、getObjects("pciBridge", PciBridge.class)
を呼び出すと、コンフィグレーションで指定されたPciBridge
オブジェクトすべてのリストが返されます。
この機能を実装するにはどうすればよいですか?もちろん、私はいくつかの異なる製品で同じパターンを見てきました。そこで、この機能を実装する準備が整っているはずです。
アイデア?
ありがとうございました。
EDIT
修正 - 私はVMWareのは、(二重引用符が冗長である)は、Javaプロパティファイル形式を利用しますが、精神は同じであることを主張しません。また、同じパターンを利用する適切なJavaアプリケーションがあります。