OperationResult

Состояние отдельной операции при обновлении тулбокса

Описание

OperationResult объект представляет состояние отдельной операции при обновлении персональных настроек тулбокса.

Создание

Создайте ReleaseCompatibilityResults объект для определенного номера версии тулбокса при помощи matlab.settings.loadSettingsCompatibilityResults функция. Results свойство ReleaseCompatibilityResults объект содержит VersionResults объект. VersionChanges свойство того VersionResults объект содержит массив OperationResult объекты.

Например, этот код получает массив OperationResult объекты для версии 2 из тулбокса mytoolbox.

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

Свойства

развернуть все

Обновите операцию, выполняемую в виде строкового скаляра.

Пример: "move mytoolbox.font.MyFontSize mytoolbox.font.FontSize"

Состояние операции обновления в виде "Succeeded", "Skipped", или "Failed". Эта таблица описывает каждое состояние и возможные причины.

СостояниеПричина
"Succeeded"N/A
"Skipped"Установка или установка группы, заданной в операции, не существуют в персональных настройках, которые будут обновлены.
"Failed"Операции пересылки
  • Обновленное дерево настроек уже содержит установку или группу с указанным именем.

  • Заданный путь группы установки или настроек не является допустимым путем.

Удалите операции
  • Заданный путь группы установки или настроек не является допустимым путем.

Сначала обновите исключение, которое происходит при выполнении операции обновления в виде ReleaseCompatibilityException объект. Если никакое исключение не происходит, ExceptionLog массив 0 на 0 ReleaseCompatibilityException объекты.

Примеры

свернуть все

Создайте функции, чтобы создать и затем обновить дерево фабрики тулбокса и затем протестировать это, обновление завершается успешно.

Функциональный 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

Создайте функциональный createMyToolboxSettingsFileUpgraders с пустым matlab.settings.SettingsFileUpgrader объект.

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® path. Затем загрузите дерево заводских настроек для mytoolbox.

matlab.settings.reloadFactoryFile('mytoolbox');

Используйте settings функционируйте, чтобы получить доступ к корню дерева настроек и установить личностное значение для MyFontSize установка.

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

Поменяйте имена настроек в createMyToolboxFactoryTree от MyFontSize и MyFontColor к FontSize и FontColor.

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

Запишите переименовывание этих двух настроек в createMyToolboxSettingsFileUpgraders функционируйте как изменения в дереве настроек для версии 2 из mytoolbox.

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

Получите результат первой операции обновления для версии 2 из mytoolbox.

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