プロパティ検証へのメタデータ インターフェイス
プロパティ検証の詳細については、プロパティ値の検証を参照してください。
プロパティにどの検証が適用されるかは、検証メタデータにアクセスすることで判別できます。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;
参考
meta.property
| meta.Validation