Main Content

meta.Validation 클래스

패키지: meta
슈퍼클래스: handle

속성 유효성 검사 설명

설명

이 클래스의 인스턴스는 클래스 정의에 지정된 속성 유효성 검사에 대한 정보를 포함합니다. meta.Validation 클래스를 사용하여 클래스 정의에 있는 각 속성에 대한 다음 정보를 프로그래밍 방식으로 가져올 수 있습니다.

  • 속성에 적용된 클래스 제한

  • 속성값의 크기 요구 사항

  • 속성값에 적용된 유효성 검사 함수를 참조하는 함수 핸들

속성 유효성 검사에 대한 내용은 속성값 유효성 검사 항목을 참조하십시오.

속성

모두 확장

속성에 적용된 클래스 제한으로, meta.class 객체로 지정됩니다. 속성 정의에 클래스 제한이 포함되지 않은 경우, MATLAB®은 이 속성을 0×0 meta.class 객체로 설정합니다.

특성:

GetAccesspublic
SetAccessprivate

속성값의 차원으로, meta.ArrayDimension형으로 구성된 이종 배열이나 meta.FixedDimension형 또는 meta.UnrestrictedDimension형으로 구성된 배열로 지정됩니다. 속성 정의가 속성에 대한 차원을 지정하지 않을 경우, MATLAB은 이 속성을 1×0 meta.ArrayDimension 배열로 설정합니다.

특성:

GetAccesspublic
SetAccessprivate

유효성 검사 함수로, 각 유효성 검사 함수를 참조하는 함수 핸들로 구성된 셀형 배열로 지정됩니다. 속성이 유효성 검사 함수를 사용하지 않을 경우 MATLAB은 이 속성을 1×0 셀형 배열로 설정합니다.

특성:

GetAccesspublic
SetAccessprivate

특성

Sealedtrue
HandleCompatibletrue

클래스 특성에 대한 자세한 내용은 클래스 특성 항목을 참조하십시오.

메서드

isValidValue

tf = isValidValue(metaValidationObj,value)

값이 유효한지 확인합니다. 이 메서드는 valuemetaValidationObj에서 설명하는 유효성 검사를 갖는 속성의 유효한 값일 경우 true를 반환합니다.

입력 인수

  • metaValidationObj - 속성의 meta.Validation 객체

  • value - 유효성을 테스트하기 위한 잠재적 속성값

반환 값

  • true - 이 속성에 대한 값이 유효함

  • false - 이 속성에 대한 값이 유효한 값이 아님

validateValue

validateValue(metaValidationObj,value)

값이 유효한지 테스트하며 유효하지 않을 경우 오류가 발생합니다. 이 메서드는 valuemetaValidationObj에서 설명하는 유효성 검사를 갖는 속성의 유효한 값이 아닐 경우 오류를 발생시킵니다. 값이 실제 객체의 속성에 할당되는 경우 발생하는 오류 메시지는 이 오류와 동일하게 됩니다.

입력 인수

  • metaValidationObj - 속성의 meta.Validation 객체

  • value - 유효성을 테스트하기 위한 잠재적 속성값

반환 값

없음

예제

ValidationExample 클래스는 유효성 검사에 사용된 속성을 정의합니다.

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

getErrorMessage 함수는 잠재적 값이 유효한지 확인하고 유효하지 않은 값의 원인을 나타내는 오류 메시지를 표시합니다.

function getErrorMessage(possibleValue)
   mc = ?ValidationExample;
   mp = findobj(mc.PropertyList,'Name','Prop');
   mv = mp.Validation;
   if ~mv.isValidValue(possibleValue)
      try
         mv.validateValue(possibleValue)
      catch errorMessage
         fprintf('This value is not valid because: %s\n',...
            errorMessage.message);
      end
   else
      fprintf('%d is OK\n',possibleValue)
   end
end

버전 내역

R2018a에 개발됨