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 문을 사용하여 이 외부 유형의 변수 생성에 사용할 구문을 정의합니다.
자세한 정보는 ExternalType 파트 소개의 내용을 참조하십시오.

구문

ExternalType 파트의
구문 다이어그램
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);

호환성

표 1. ExternalType 파트의 호환성 고려사항
플랫폼 문제
COBOL 생성 사용자 작성 ExternalType 파트는 지원되지 않습니다.