ExternalType 파트
ExternalType 파트는 EGL을 외부 언어 요소에 맵핑합니다.
ExternalType 파트에서 다음 스테레오타입을 사용할 수
있습니다.
- JavaObject는 Java™ 코드에 액세스하는 데 사용됩니다. 세부사항은 “Java 코드의 외부 유형”을 참조하십시오.
- JavaScriptObject는 JavaScript 코드에 액세스하는 데 사용됩니다. 세부사항은 “JavaScript 코드의 외부 유형”을 참조하십시오.
- HostProgram은 IBM® i의 호스트 프로그램에 액세스하는 데 사용됩니다. 세부사항은 “웹 서비스로 IBM i 프로그램에 액세스”를 참조하십시오.
ExternalType 파트에는 다음 특성이 있습니다.
- ExternalType에서 제공하는 EGL 맵핑은 필드와 생성자를 포함하도록 일반화됩니다.
- ExternalType 파트는 코드에 직접 액세스할 수 없습니다. EGL이 유형 검사를 수행할 수 있도록 프로토타입을 제공해야 합니다.
- ExternalType 정의는 스토리지를 예약하지 않습니다. 파트를 기반으로 하는 변수를 선언해야 합니다.
- ExternalType 파트에서 사용되는 여러 개념은 Java 및 C#과 같은 객체 지향 언어에서 생성됩니다.
- ExternalType 파트를 사용하여 이벤트 핸들링에 사용할 함수 포인터의 배열을 작성할 수 있습니다. EGL 텍스트 보고서에서 일반적으로 이 용도로 ExternalType 파트를 사용합니다. EGL 텍스트 보고서을 참조하십시오.
- ExternalType 함수:
- ExternalType을 기반으로 하는 변수를 작성하고 점 구문 externalTypeVariable.methodName()을 사용하여 메소드의 이름에 변수 이름을 추가합니다.
- 함수가 static으로 표시되는 경우 ExternalType 파트의 이름과 점 구문(typeName.methodName())을 사용하여 함수를 호출합니다.
- ExternalType 파트를 java.io.Serializable 인터페이스를 구현하는 Java 클래스에 맵핑할 수 있지만 ExternalType 파트가 사전정의된 Serializable ExternalType을 확장해야 합니다.
ExternalType 파트는 다음 컴포넌트로 구성됩니다.
- 변수 선언
- 외부 언어 요소의 공용 변수에 대한 액세스를 제공합니다.
- 함수 프로토타입
- 외부 유형의 메소드 호출 또는 함수 호출을 나타냅니다.
- 생성자 프로토타입
- EGL new 문을 사용하여 이 외부 유형의 변수 생성에 사용할 구문을 정의합니다.
구문

- typeName
- 파트 유형에 지정하는 이름입니다. 이 유형의 변수를 작성하는 명령문에서 이 이름을 사용하십시오.
- externalType
- extends 절은 함수를 포함하는 다른 ExternalType 정의 및/또는 이 유형이 상속받는 변수 프로토타입을 참조합니다.
- stereotype
- JavaObject, JavaScriptObject 또는 HostProgram 유형 중 하나입니다.
- variableDeclaration
- 이 프로토타입 선언은 외부 유형의 변수를 나타냅니다. 스토리지가 지정되지 않아 이러한 선언에서 초기자(initializer)를 사용할 수 없습니다. EGL 구문을 사용하고 원시 유형에 해당하는 EGL 기본 유형을 변수의 기본으로 사용하십시오. 원시 유형의 한 예는 Java에 EGL 기본요소 맵핑의 내용을 참조하십시오.
- static
- 이 키워드는 외부 유형을 기본으로 하는 변수 외에 지정된 함수 또는 변수가 있으며 typeName.functionName() 구문을 사용하여 해당 함수 또는 변수를 참조할 수 있음을 표시합니다.
- functionPrototype
- 이 프로토타입 선언은 외부 유형의 함수를 나타냅니다. 이 선언에 실제 코드를 포함하지 말고 EGL 구문을 사용하여 매개변수를 지정하고 값을 리턴하십시오. 매개변수로 전달하는 기본 유형은 in 수정자를 포함해야 합니다.
- parameters
- EGL이 new 문을 사용하여 이 유형의 변수를 작성해야 하는 매개변수입니다. new 문의 파트 이름에 typeName을 사용하십시오(new 연산자 참조).
예제
다음 예제는 함수 프로토타입이 있는 ExternalType 파트를 표시합니다.
ExternalType TaxModule type JavaObject
// Define public variables
adjustedGrossIncome FLOAT;
companyName STRING;
// Define function prototype
function calculateTax (adjIncome FLOAT in) returns (FLOAT);
// Define constructor prototype
constructor (taxAuthority STRING);
end
// Invoke the above constructor in new expression
myTaxModule TaxModule = new TaxModule("NC") {
adjustedGrossIncome = 60135.00,
companyName = "CompanyB" };
myTax = myTaxModule.calculateTax (myIncome);
호환성
| 플랫폼 | 문제 |
|---|---|
| COBOL 생성 | 사용자 작성 ExternalType 파트는 지원되지 않습니다. |