Java 랩퍼 이름의 별명 지정 방법

EGL 생성기는 다음과 같은 규칙을 별명 Java™ 랩퍼 이름에 적용합니다.

  1. EGL 이름이 모두 대문자인 경우에는 소문자로 변환하십시오.
  2. 이름이 클래스 이름 또는 메소드 이름인 경우 첫 번째 문자가 대문자인지 확인하십시오. (예를 들어, x에 대한 getter 메소드는 getx()가 아니라 getX()입니다.)
  3. 모든 밑줄(_)과 하이픈(-)을 삭제하십시오. (VisualAge® Generator 호환 모드를 사용하는 경우 하이픈은 EGL 이름에서 유효합니다.) 밑줄 또는 하이픈 뒤에 문자가 오는 경우에는 해당 문자를 대문자로 변경하십시오.
  4. 이름이 마침표(.)를 구분 기호로 사용하는 규정된 이름인 경우에는 모든 마침표를 밑줄로 바꾸고 이름의 시작 부분에 밑줄을 추가하십시오.
  5. 이름에 달러 표시($)가 포함된 경우에는 달러 표시를 두 개의 밑줄로 바꾸고 이름의 시작 부분에 밑줄을 추가하십시오.
  6. 이름이 Java 키워드인 경우에는 이름의 시작 부분에 밑줄을 추가하십시오.
  7. 이름이 *(채움 필드를 나타내는 별표)인 경우에는 첫 번째 별표를 Filler1이라는 이름으로 바꾸로 두 번째 별표를 Filler2라는 이름으로 바꾸는 방식으로 별표를 이름으로 바꾸십시오.

또한 프로그램 랩퍼, 레코드 랩퍼 및 하위 구조화된 배열 필드에 대한 Java 랩퍼 클래스 이름에 특수 규칙이 적용됩니다. 나머지 절에서는 이 규칙에 대해 설명하고 예제를 제공합니다. 일반적으로 생성된 랩퍼 클래스 내의 필드 사이에 이름 충돌이 존재하면 규정된 이름을 사용하여 클래스 및 변수 이름을 판별합니다. 충돌이 여전히 해결되지 않으면 생성 시 예외가 발생합니다.

프로그램 랩퍼 클래스

레코드 매개변수 랩퍼의 이름은 유형 정의 이름에 적용된 위의 규칙을 사용하여 지정됩니다. 레코드 랩퍼 클래스 이름이 프로그램 클래스 이름 또는 프로그램 랩퍼 클래스 이름과 충돌하면 레코드 랩퍼 클래스 이름의 끝에 Record가 추가됩니다.

변수 이름에 대한 규칙은 다음과 같습니다.
  1. 레코드 매개변수 변수의 이름은 매개변수 이름에 적용된 위의 규칙을 사용하여 지정됩니다. 따라서 get()set() 메소드에는 클래스 이름이 아니라 이 이름이 포함되어 있습니다.
  2. getset 메소드는 위의 규칙이 적용된 매개변수 이름이 뒤따라오는 이름 지정된 get 또는 set입니다.

레코드 랩퍼 클래스

하위 구조화된 배열 필드 클래스 이름에 대한 규칙은 다음과 같습니다.
  1. 하위 구조화된 배열 필드는 레코드 랩퍼 클래스의 내부 클래스가 되며 클래스 이름은 위의 규칙을 필드 이름에 적용하여 파생됩니다. 이 클래스 이름이 포함하는 레코드 클래스 이름과 충돌하면 Structure가 필드 클래스 이름에 추가됩니다.
  2. 필드 클래스 이름이 서로 충돌하면 규정된 필드 이름이 사용됩니다.
getset 메소드 이름에 대한 규칙은 다음과 같습니다.
  1. 메소드는 위의 규칙이 적용된 필드 이름이 뒤따라오는 이름 지정된 get 또는 set입니다.
  2. 필드 이름이 서로 충돌하면 규정된 필드 이름이 사용됩니다.

하위 구조화된 배열 필드 클래스

하위 구조화된 배열 필드 클래스 이름에 대한 규칙은 다음과 같습니다.
  1. 하위 구조화된 배열 필드는 포함하는 하위 구조화된 배열 필드에 대해 생성된 랩퍼 클래스의 내부 클래스가 되며 클래스 이름은 위의 규칙을 필드 이름에 적용하여 파생됩니다.
  2. 이 클래스 이름이 포함하는 하위 구조화된 배열 필드 클래스 이름과 충돌하면 Structure가 필드 클래스 이름에 추가됩니다.
getset 메소드 이름에 대한 규칙은 다음과 같습니다.
  1. 메소드는 위의 규칙이 적용된 필드 이름이 뒤따라오는 이름 지정된 get 또는 set입니다.
  2. 필드 이름이 서로 충돌하면 규정된 필드 이름이 사용됩니다.

예제

다음 샘플 프로그램 및 생성된 출력에서는 랩퍼 생성 중에 예상되는 내용을 보여줍니다.

샘플 프로그램

Program WrapperAlias(param1 RecordA)
  
end
Record RecordA type basicRecord
	10 fieldA CHAR(10)[1];
	10 field_b CHAR(10)[1];
	10 field$C CHAR(10)[1];
	10 static CHAR(10)[1];
	10 fieldC CHAR(20)[1];
		15 field CHAR(10)[1];
		15 fieldD CHAR(10)[1];
	10 arrayField CHAR(20)[5];
		15 innerField1 CHAR(10)[1];
		15 innerField2 CHAR(10)[1];
end

생성된 출력

생성된 출력의 이름
출력 이름
프로그램 랩퍼 클래스 WrapperaliasWrapper(레코드 랩퍼 클래스 RecordA의 인스턴스인 param1 필드가 포함됨)
매개변수 랩퍼 클래스 RecordA(다음 메소드를 통해 액세스할 수 있음)
  • getFieldA(fieldA에서)
  • getFieldB(첫 번째 field-b에서)
  • get_Field__C(field$C에서)
  • get_Static(static에서)
  • get_FieldC_itemB(fieldCfieldB에서)
  • getFieldD(fieldD에서)
  • getArrayField(arrayField에서)
ArrayFieldgetInnerField1getInnerField2를 통해 액세스할 수 있는 필드가 포함된 RecordA의 내부 클래스입니다.