Main Content

プロパティ検証へのメタデータ インターフェイス

プロパティ検証の詳細については、プロパティ値の検証を参照してください。

プロパティにどの検証が適用されるかは、検証メタデータにアクセスすることで判別できます。meta.Validation クラスのインスタンスは、プロパティ検証に関する次の情報を提供します。

  • meta.class オブジェクトとして指定されるプロパティのクラス要件

  • meta.FixedDimension および meta.UnrestrictedDimension オブジェクトの配列として指定されるプロパティ値のサイズ要件

  • 関数ハンドルの cell 配列として指定されるプロパティ値に適用される検証関数を参照する関数ハンドル

たとえば、ValidationExample クラスは、1 行 x 任意の列数の double の配列で、10 より大きな実数でなければならないプロパティを定義します。

classdef ValidationExample
   properties
      Prop (1,:) double {mustBeReal, mustBeGreaterThan(Prop, 10)} = 200;
   end
end

プロパティの meta.property オブジェクトから meta.Validation オブジェクトにアクセスします。meta.Validation オブジェクトのプロパティから検証情報を取得します。この情報を cell 配列に収集します。

  • Size プロパティからサイズ情報を取得する

  • Class プロパティからクラス名を取得する

  • ValidatorFunctions プロパティから検証関数の関数ハンドルの cell 配列を取得する

mc = ?ValidationExample;
mp = findobj(mc.PropertyList,'Name','Prop');
sz = mp.Validation.Size;
len = length(sz);
dim = cell(1:len);
   for k = 1:len
      switch class(sz(k))
         case 'meta.FixedDimension'
            dim{k} = sz(k).Length;
         case 'meta.UnrestrictedDimension'
            dim{k} = ':';
      end
   end
dim{end+1} = mp.Validation.Class.Name;
dim{end+1} = mp.Validation.ValidatorFunctions;

参考

|

関連するトピック