Java-Zeichenfolgen bearbeiten
COBOL stellt Java™ -Zeichenfolgedaten in Unicode dar. Um eine Java-Zeichenfolge in einem COBOL-Programm darzustellen, deklarieren Sie die Zeichenfolge als Objektreferenz der jstring-Klasse. Verwenden Sie dann JNI-Services, um COBOL- alphanumerische oder nationale (Unicode) Daten aus dem Objekt festzulegen oder zu extrahieren.
Informationen zu diesem Vorgang
Services für Unicode: Verwenden Sie die folgenden Standardservices für die Konvertierung zwischen JSTRING-Objektreferenzen und COBOL- USAGE NATIONAL -Datenelementen. Verwenden Sie diese Services für Anwendungen, die zwischen der Workstation und dem Mainframe portierbar sein sollen. Greifen Sie über Funktionszeiger in der JNINativeInterface -Umgebungsstruktur auf diese Services zu.
| Service- | Eingabeargumente | Rückgabewert |
|---|---|---|
| Neue Zeichenfolge1 |
|
jstring-Objektreferenz |
| GetStringLength |
|
Die Anzahl der Unicode-Zeichen im jstring-Objektreferenz; binäres Vollwort |
| Zeichenfolgezeichen abrufen1 |
|
|
| ReleaseStringChars |
|
Keine; der Speicher für das Array wird freigegeben. |
|
||
Services für EBCDIC: Verwenden Sie die folgenden z/OS® -Services, eine Erweiterung des JNI, um zwischen jstring-Objektreferenzen und alphanumerischen COBOL-Daten (PIC X(n)) zu konvertieren.
| Service- | Eingabeargumente | Rückgabewert |
|---|---|---|
| NewStringPlatform |
|
Rückgabecode als binäre Vollwort-Ganzzahl:
|
| GetStringPlatformLength |
|
Rückgabecode als binäre Vollwort-Ganzzahl:
Gibt im dritten Argument die erforderliche Länge des Ausgabepuffers in Byte zurück, um die konvertierte Java-Zeichenfolge aufzunehmen, einschließlich des abschließenden Nullbyte, auf das durch das zweite Argument verwiesen wird. |
| GetStringPlatform |
|
Rückgabecode als binäre Vollwort-Ganzzahl:
|
|
||
Diese EBCDIC-Services sind als DLL gepackt, die Teil Ihres IBM® Java Software Development Kitist. Details zu den Services finden Sie unter jni_convert.h im IBM Java Software Development Kit.
Verwenden Sie CALL literal -Anweisungen, um die Services aufzurufen. Die Aufrufe werden über die DLL-Nebendatei libjvm.x aufgelöst, die Sie in den Linkschritt jedes COBOL-Programms einschließen müssen, das objektorientierte Sprache verwendet.
Der folgende Code erzeugt beispielsweise ein Java-String-Objekt aus der EBCDIC-Zeichenkette 'MyConverter'. (Dieses Codefragment stammt aus dem Client-Programm " J2EE, das in " Beispiel: ' J2EE Client geschrieben in COBOL vollständig dargestellt ist)
Move z"MyConverter" to stringBuf
Call "NewStringPlatform"
using by value JNIEnvPtr
address of stringBuf
address of jstring1
0
returning rc
Wenn die EBCDIC-Services die einzigen JNI-Services sind, die Sie von einem COBOL-Programm aufrufen, müssen Sie das Copybook JNI.cpy nicht kopieren. Außerdem müssen Sie mit dem JNI-Umgebungszeiger keine Adressierbarkeit einrichten.
Services für UTF-8: Die native Java-Schnittstelle stellt auch Services für die Konvertierung zwischen jstring-Objektreferenzen und UTF-8 -Zeichenfolgen bereit. Die Verwendung dieser Services in COBOL-Programmen wird aufgrund der Schwierigkeiten bei der Verarbeitung von UTF-8 -Zeichenfolgen auf der z/OS -Plattform nicht empfohlen.