置換されたアドオンの確認
アプリケーションは、アドオンがドメイン内の新しいバージョンによって置換されたかどうかを判別し、置換されている場合は、その新しいバージョンがオブジェクト・ストアにインストールされたかどうかを判別できます。
アプリケーションは Factory.AddOn.fetchSupersedingInstance メソッドを使用して、このメソッドに渡されるアドオン ID に基づいて新しいアドオンがないか検査できます。ドメイン内に新しいアドオンが存在しない場合、このメソッドは呼び出しで指定したアドオンを返します。新しいアドオンがある場合、メソッドは新しいアドオンを返します (ID は、メソッド呼び出しで指定した ID と異なります)。
ObjectStore.isAddOnInstalled メソッドはアプリケーションに、指定されたアドオンがオブジェクト・ストア内にインストールされているかどうか通知します。このメソッドは、アドオンの ID を使用します。アプリケーションは、更新バージョンのアドオンがインストールされているかどうかを判別するために、置換されたアドオンの ID をこのメソッドに渡します。オブジェクト・ストアにアドオンがインストールされていない場合、メソッドは false を返します。
以下の Java™ および C# の例では、ObjectStore.isAddOnInstalled メソッドを使用します。指定されたアドオンがオブジェクト・ストアにインストールされていない場合、コードによりインストールされます。
Java の例
void installOn(Domain domain, AddOn addOn)
{
if ( objectStore.isAddOnInstalled(addOn.get_Id()) == false )
{
System.out.println("+++ Installing " +
addOn.get_DisplayName() + " into object store " +
objectStore.get_DisplayName() + " ...");
objectStore.installAddOn(addOn);
objectStore.save(RefreshMode.REFRESH);
}
else
{
System.out.println("--- " + addOn.get_DisplayName() + " already installed in object store " +
objectStore.get_DisplayName() + ".");
}
}
C# の例
void installOn(IDomain domain, IAddOn addOn)
{
if ( objectStore.IsAddOnInstalled(addOn.Id) == False )
{
System.Console.WriteLine("+++ Installing " +
addOn.DisplayName + " into object store " +
objectStore.DisplayName + " ...");
objectStore.InstallAddOn(addOn);
objectStore.Save(RefreshMode.REFRESH);
}
else
{
System.Console.WriteLine("--- " + addOn.DisplayName + " already installed in object store " +
objectStore.DisplayName + ".");
}
}