Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

プロジェクトでのラベル管理の自動化

この例では、プロジェクト関数を使用してラベルを管理する方法を示します。

機体のサンプル プロジェクトを開く

プロジェクトの例のファイルの作業コピーを作成して開きます。MATLAB® により、ファイルがサンプル フォルダーにコピーされ、編集できるようになります。

sldemo_slproject_airframe;
Starting: Simulink
Building with 'MinGW64 Compiler (C)'.
MEX completed successfully.

プロジェクト オブジェクトの取得

プロジェクト オブジェクトを作成して、現在開いているプロジェクトをコマンド ラインで操作します。

project = currentProject;

ファイルのラベルの表示

プロジェクト内のファイルを調べます。

files = project.Files;
disp(files);
  1×31 ProjectFile array with properties:

    Path
    Labels
    Revision
    SourceControlStatus

このリストにあるファイルにアクセスするためのインデックスを作成します。たとえば、ファイル番号 10 を取得するとします。各ファイルには、ファイルのパスおよびファイルに付けられたラベルを示す 2 つのプロパティがあります。

aFile = files(10);
disp(aFile);
  ProjectFile with properties:

                   Path: "C:\workSpace\examples\airframe2\data\system_model.sldd"
                 Labels: [1×1 matlab.project.Label]
               Revision: "57973f5e87ca65215ab688e3544287e07db794c4"
    SourceControlStatus: Unmodified

ファイル オブジェクトの [ラベル] プロパティにインデックスを作成して、ファイルに付けられたラベルの情報を検索します。以下のコマンドを実行すると、ここで指定したファイルに付けられた最初のラベルが取得されます。

label = aFile.Labels(1);
disp(label);
  Label with properties:

            File: "C:\workSpace\examples\airframe2\data\system_model.sldd"
        DataType: 'none'
            Data: []
            Name: "Design"
    CategoryName: "Classification"

ファイルのサブセットにラベルを追加する

以下のコードを実行すると、プロジェクト内の .m ファイル拡張子をもつすべてのファイルに、Classification カテゴリの Design ラベルが追加されます。

はじめに、ファイル一覧を取得します。

files = project.Files;

次に、各ファイルに対して処理を繰り返し、.m という拡張子をもつファイルに Classification カテゴリから Design というラベルを追加します。

for fileIdx = 1:numel(files)
   file = files(fileIdx); 
   [~, ~, fileExtension] = fileparts(file.Path);
   if strcmp(fileExtension,'.m')
       addLabel(file, 'Classification', 'Design');
   end
end

名前付きラベルの検索

ファイルに付けられたラベルのデータを設定し、クエリすることができます。これを行うには、まずはじめにファイル オブジェクトを検索します。そして、前記の手順で示したように、プロジェクト内のすべてのファイルに対して処理を繰り返します。または、プロジェクトに対して関数 findFile を使用することもできます。

以下のコードを実行すると、'utilities/rebuild_s_functions.m' というファイルのファイル オブジェクトが検索されます。

pathToLocate = fullfile('utilities','rebuild_s_functions.m');
file = findFile(project, pathToLocate);

ファイルに付けられているラベルごとにラベル プロパティを調べ、ラベル オブジェクトの配列を取得します。

labels = file.Labels;
disp(labels);
  Label with properties:

            File: "C:\workSpace\examples\airframe2\utilities\rebuild_s_functions.m"
        DataType: 'none'
            Data: []
            Name: "Design"
    CategoryName: "Classification"

ラベルを名前で検索するには、ファイル オブジェクトに対して findLabel を使用します。

label = findLabel(file, 'Classification','Design');
disp(label);
  Label with properties:

            File: "C:\workSpace\examples\airframe2\utilities\rebuild_s_functions.m"
        DataType: 'none'
            Data: []
            Name: "Design"
    CategoryName: "Classification"

新規カテゴリの作成

ラベルをファイルに追加する前に、新しいラベルを作成しなければなりません。各カテゴリに名前とサポートされるデータ型を与え、カテゴリでラベルを定義します。

以下のコードを実行すると、Engineers というラベル カテゴリが作成されます。このカテゴリを使用すると、プロジェクトにおけるファイルの所有者を表すことができます。これらのラベルは、文字列データを追加するために、char 型のデータ型をもちます。

createCategory(project,'Engineers','char');
engineersCategory = findCategory(project, 'Engineers');
createLabel(engineersCategory,'Sam');
createLabel(engineersCategory,'Pat');
createLabel(engineersCategory,'Alex');

これで、'Engineers' カテゴリから Sam というラベルをプロジェクト内のファイルに追加できるようになりました。

addLabel(file, 'Engineers', 'Sam');
label = findLabel(file, 'Engineers', 'Sam');

ラベル データの設定

次のコマンドは、付加されたラベルに対して、データを設定します。

label.Data = 'Maintenance responsibility';
disp(label)
  Label with properties:

            File: "C:\workSpace\examples\airframe2\utilities\rebuild_s_functions.m"
        DataType: 'char'
            Data: 'Maintenance responsibility'
            Name: "Sam"
    CategoryName: "Engineers"

詳細情報

プロジェクト管理