UML에서 C++로 변환에 대한 시스템 인수 설정

변환 구성 파일에 포함되지 않은 변환 동작을 지정할 수 있는 eclipse.ini 파일에서 UML에서 C++로 변환에 대한 시스템 인수를 지정할 수 있습니다. 예를 들어, 대체 파일 이름 확장자를 지정하고 생성된 속성 및 오퍼레이션의 순서를 가시성을 기초로 변경할 수 있습니다.
이 태스크 정보

UML에서 C++로 변환의 시스템 인수를 지정하려면 다음을 수행하십시오.

  1. 문서 편집기에서 eclipse.ini 파일을 여십시오. eclipse.ini 파일은 사용자가 제품을 설치할 때 설치 루트로 지정한 디렉토리에 있습니다.
  2. 파일 끝에 변환 동작 환경 설정을 추가하십시오. 파일에 있는 기존의 다른 Workbench 인수 다음에 고유 행에 각각의 환경 설정을 지정하십시오. 다음 표는 사용자가 구성할 수 있는 동작과 eclipse.ini 파일에 추가해야 하는 인수를 나열합니다.
    조치 시스템 인수 기본 변환 동작
    속성 및 오퍼레이션을 Public, Protected, Private 순서로 표시 -DVISIBILITY_ORDER=true 이 시스템 인수를 지정하지 않는 경우 생성된 코드는 Private, Protected, Public 순서로 속성 및 오퍼레이션을 나열합니다.
    #include 지시문에서 상대 경로 정보 제외 -DEXCLUDE_PATH_FOR_INCLUDES=true 이 시스템 인수를 지정하지 않는 경우 변환은 상대 경로 정보를 지정하는 #include 지시문을 생성합니다.
    유형 매개변수로 클래스 템플리트를 선언할 때 typename 키워드 생성(예: template <typename identifier> class_declaration) -DTYPENAME_TEMPLATES=true 이 시스템 인수를 지정하지 않는 경우 클래스 유형의 템플리트 매개변수가 있는 템플리트 클래스를 포함하는 모델에 대해 변환을 실행할 때 생성된 선언에는 class 키워드가 포함됩니다.

    다음 예제를 고려하십시오.

    이 이미지는 클래스 유형이고 T1 템플리트 매개변수가 있는 TemplateClass1 UML 템플리트 클래스를 보여 줍니다.

    기본적으로 변환은 TemplateClass1.h에서 다음 선언을 생성합니다.
    template <class Parameter1>
    class Class1
    {
    
        //Begin section for Class1
        //TODO: Add attributes that you want preserved
        //End section for Class1
        public:
    
    
            //@uml.annotationsderived_abstraction="platform:/resource/Miscellaneous%20Models/source.emx#_hFn-0GaLEdyC-b6mj80KQA"
            //@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"
            int Operation1()
            {
                //TODO Auto-generated method stub
                return 0;
            }
    
    };  //end class Class1
    </class>
    -DTYPENAME_TEMPLATES=true를 지정하는 경우 변환은 TemplateClass1.h에서 다음 선언을 생성합니다.
    template <typename Parameter1>
    class Class1
    {
    
        //Begin section for Class1
        //TODO: Add attributes that you want preserved
        //End section for Class1
        public:
    
    
            //@uml.annotationsderived_abstraction="platform:/resource/Miscellaneous%20Models/source.emx#_hFn-0GaLEdyC-b6mj80KQA"
            //@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"
            int Operation1()
            {
                //TODO Auto-generated method stub
                return 0;
            }
    
    };  //end class Class1</typename>
    헤더 파일에서 인라인 함수 코드 생성 -DINLINE_HEADER=true 이 시스템 인수를 지정하지 않는 경우 변환은 C++ 본문 파일에서 인라인 함수에 대한 코드를 생성합니다.
    C++ 본문 파일에 대한 대체 파일 이름 확장자 지정 -DBODY_FILE_EXTENSION=.<file name extension>
    예를 들어 파일 이름 확장자가 .cc인 C++ 본문 파일을 생성하려면 -DBODY_FILE_EXTENSION=.cc를 지정하십시오.
    주: «cpp_properties» 스테레오타입을 소스 모델 요소에 적용하는 경우 bodyFileExtension 특성의 값은 eclipse.ini 파일에서 지정하는 값을 대체합니다.
    이 시스템 인수를 지정하지 않는 경우 변환은 파일 이름 확장자가 .cpp인 C++ 본문 파일을 생성합니다.
  3. 파일 > 저장을 클릭하십시오.
  4. Eclipse를 다시 시작하고 -clean 옵션을 지정하십시오.

피드백