속성 및 생성 특성

속성은 오브젝트가 해당 상태를 유지하기 위해 캡슐화하는 변수입니다. 오브젝트는 속성을 데이터 항목 세트로 캡슐화합니다. 데이터 항목은 이름 및 유형으로 변수를 지정합니다. 여기서 유형은 데이터 유형입니다. 오브젝트에 대한 데이터 항목은 오브젝트 구조의 멤버에 맵핑됩니다. 멤버의 이름 및 유형은 오브젝트 데이터의 이름 및 유형과 동일합니다.

예를 들어, Valve 오브젝트 유형의 isClosed 속성은 Valve 구조 내에서 값에 의해 데이터 멤버로 임베드됩니다.

struct Valve {
    /*** User explicit entries ***/
    RiCBoolean isClosed;   /*## attribute isClosed ##*/
};

RiCBoolean 유형은 C의 OMBoolean과 동일합니다. OMBoolean은 IBM® Rational® Rhapsody® Developer for C++ 프레임워크에 정의된 부울 데이터 유형입니다.

액세서 오퍼레이션은 사용자가 데이터에 액세스할 수 있도록 하는 반면, 뮤테이터 오퍼레이션은 사용자가 데이터를 수정할 수 있도록 합니다. C_CG::Attribute::AccessorGenerate 특성이 선택으로 설정되는 경우 액세서가 생성됩니다. 마찬가지로, 뮤테이터는 C_CG::Attribute::MutatorGenerate 특성이 Always로 설정된 경우에 생성됩니다. 기본 AccessorGenerate선택 취소입니다. MutatorGenerate의 기본값은 Never입니다.

액세서 및 뮤테이터 오퍼레이션은 오브젝트 유형에 대한 스펙 파일의 사용자 내재적 항목 영역에서 생성됩니다. 예를 들어, _getIsClosed() 액세서 오퍼레이션 및 _setIsClosed() 뮤테이터 오퍼레이션에 대한 프로토타입은 Valve.h 파일에서 isClosed 속성에 대해 생성됩니다.

/*** User implicit entries ***/
RiCBoolean Valve _getIsClosed(const Valve* const me);
void Valve _setIsClosed(Valve* const me, RiCBoolean
    p_isClosed);

액세서 및 뮤테이터 오퍼레이션의 본문은 오브젝트 유형에 대한 구현 파일에서 생성됩니다. 예를 들어, Valve.c 파일에서 _getIsClosed()_setIsClosed() 오퍼레이션에 대해 다음 구현이 생성됩니다.

/*** Methods implementation ***/
RiCBoolean Valve_getIsClosed(const Valve* const me) {
   return me->isClosed;
}
void Valve _setIsClosed(Valve* const me, RiCBoolean
    p_isClosed) {
    me->isClosed = p_isClosed;
}

Rational Rhapsody는 다음 순서로 속성을 생성합니다.

  1. 속성은 사용자 정의 및 내재적 속성(예: 관계 컨테이너)으로 그룹화됩니다.
  2. 각 서브그룹의 속성은 알파벳순으로 생성됩니다.

피드백