Main Content

OperationResult

ツールボックスをアップグレードする際の個々の操作のステータス

説明

OperationResult オブジェクトは、ツールボックスの個人用設定をアップグレードする際の個々の操作のステータスを表します。

作成

関数 matlab.settings.loadSettingsCompatibilityResults を使用して、ツールボックスの特定のバージョン番号用の ReleaseCompatibilityResults オブジェクトを作成します。ReleaseCompatibilityResults オブジェクトの Results プロパティには VersionResults オブジェクトが含まれています。その VersionResults オブジェクトの VersionChanges プロパティには、OperationResult オブジェクトの配列が含まれています。

たとえば、次のコードは、ツールボックス mytoolbox の Version 2OperationResult オブジェクトの配列を取得します。

myCompatibilityResults = matlab.settings.loadSettingsCompatibilityResults('mytoolbox','Version2');
myCompatibilityResults.Results.VersionChanges
ans = 
  1×2 OperationResult array with properties:
    Operation
    Status
    ExceptionLog

プロパティ

すべて展開する

実行するアップグレード操作。string スカラーとして指定します。

例: "move mytoolbox.font.MyFontSize mytoolbox.font.FontSize"

アップグレード操作のステータス。"Succeeded""Skipped" または "Failed" として指定します。次の表に、各ステータスと考えられる原因を示します。

ステータス原因
"Succeeded"N/A
"Skipped"操作で指定された設定または設定グループが、アップグレード対象の個人用設定に存在しません。
"Failed"移動操作
  • アップグレードされた設定ツリーに、指定された名前をもつ設定またはグループが既に含まれています。

  • 指定された設定または設定グループのパスが有効なパスではありません。

削除操作
  • 指定された設定または設定グループのパスが有効なパスではありません。

アップグレード操作の実行中に発生する最初のアップグレードの例外。ReleaseCompatibilityException オブジェクトとして指定します。例外が発生していない場合、ExceptionLogReleaseCompatibilityException オブジェクトの 0 行 0 列の配列です。

すべて折りたたむ

ツールボックスの出荷時のツリーを作成してからアップグレードを行う関数を作成し、アップグレードが正常に完了していることをテストします。

関数 createMyToolboxFactoryTree はツールボックス mytoolbox 用の出荷時の設定ツリーを作成します。

function myToolboxFactoryTree = createMyToolboxFactoryTree()
    myToolboxFactoryTree = matlab.settings.FactoryGroup.createToolboxGroup('mytoolbox', ...
        'Hidden',false);

    toolboxFontGroup = addGroup(myToolboxFactoryTree,'font','Hidden',false)
    addSetting(toolboxFontGroup,'MyFontSize','FactoryValue',11,'Hidden',false, ...
        'ValidationFcn',@matlab.settings.mustBeNumericScalar)    
    addSetting(toolboxFontGroup,'MyFontColor','FactoryValue','Black', ...
        'Hidden',false,'ValidationFcn',@matlab.settings.mustBeStringScalar);
end

空の matlab.settings.SettingsFileUpgrader オブジェクトを指定して、関数 createMyToolboxSettingsFileUpgraders を作成します。

function upgraders = createMyToolboxSettingsFileUpgraders()
    upgraders = matlab.settings.SettingsFileUpgrader.empty;
end

ツールボックスの settingsInfo.json ファイルを作成します。ルート設定グループ名として mytoolbox、設定ツリー作成関数として createMyToolboxFactoryTree、設定ツリー アップグレード関数として createMyToolboxSettingsFileUpgraders を指定します。settingsInfo.json をツールボックスの resources フォルダーに配置します。

{
"ToolboxGroupName" : "mytoolbox",
"Hidden" : false,
"CreateTreeFcn" : "createMyToolboxFactoryTree",
"CreateUpgradersFcn" : "createMyToolboxSettingsFileUpgraders"
}

設定ツリー作成関数を含むフォルダーとツールボックスのリソース フォルダーを MATLAB® パスに追加します。次に、mytoolbox の出荷時の設定ツリーを読み込みます。

matlab.settings.reloadFactoryFile('mytoolbox');

関数 settings を使用して設定ツリーのルートにアクセスし、MyFontSize 設定の個人用の値を設定します。

s = settings;
s.mytoolbox.font.MyFontSize.PersonalValue = 15;

createMyToolboxFactoryTree の設定名を MyFontSizeMyFontColor から FontSizeFontColor に変更します。

function myToolboxFactoryTree = createMyToolboxFactoryTree()
    myToolboxFactoryTree = matlab.settings.FactoryGroup.createToolboxGroup('mytoolbox', ...
        'Hidden',false);

    toolboxFontGroup = addGroup(myToolboxFactoryTree,'font','Hidden',false)
    addSetting(toolboxFontGroup,'FontSize','FactoryValue',11,'Hidden',false, ...
        'ValidationFcn',@matlab.settings.mustBeNumericScalar)    
    addSetting(toolboxFontGroup,'FontColor','FactoryValue','Black', ...
        'Hidden',false,'ValidationFcn',@matlab.settings.mustBeStringScalar);
end

2 つの設定の名前変更を、mytoolbox Version 2 の設定ツリーへの変更として関数 createMyToolboxSettingsFileUpgraders に記録します。

function upgraders = createMyToolboxSettingsFileUpgraders()
    upgraders = matlab.settings.SettingsFileUpgrader('Version2'); 
    move(upgraders,'mytoolbox.font.MyFontSize','mytoolbox.font.FontSize'); 
    move(upgraders,'mytoolbox.font.MyFontColor','mytoolbox.font.FontColor');
end

mytoolbox の出荷時の設定ツリーを再度読み込みます。

matlab.settings.reloadFactoryFile('mytoolbox');

関数 settings を使用して設定ツリーのルートにアクセスし、FontSize 設定の個人用の値が MyFontSize 設定から正しく移動していることを確認します。

s = settings;
s.mytoolbox.font.FontSize
ans = 
  Setting 'mytoolbox.font.FontSize' with properties:
       ActiveValue: 15
    TemporaryValue: <no value>
     PersonalValue: 15
      FactoryValue: 11

mytoolbox Version 2 に対する 1 番目のアップグレード操作の結果を取得します。

compatibilityResults.matlab.settings.loadSettingsCompatibilityResults("mytoolbox","Version2");
compatibilityResults.Results.VersionChanges(1)
ans = 
  OperationResult with properties:
       Operation: "move mytoolbox.font.MyFontSize mytoolbox.font.FontSize"
          Status: "Succeeded"
    ExceptionLog: [0×0 matlab.settings.ReleaseCompatibilityException]

バージョン履歴

R2019b で導入