Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Konformität zwischen Schnittstellen

&pagelevel(5)&pagelevel

Eine Schnittstelle interface-1 ist nur dann zu einer Schnittstelle interface-2 konform, wenn Folgendes gilt:

  1. Es gibt für jede Methode bei interface-2 eine Methode in interface-1 mit demselben Namen, wobei dieselbe Anzahl von Parametern erforderlich ist mit übereinstimmenden Spezifikationen für BY REFERENCE, BY VALUE und OPTIONAL.

  2. Ist der formale Parameter einer Methode in interface-2 eine Objektreferenz, dann muss der entsprechende Parameter in interface-1 auch eine Objektreferenz sein, die folgenden Regeln entspricht:

    1. Ist der Parameter in interface-2 eine universelle Objektreferenz, muss der entsprechende Parameter in interface-1 ebenfalls eine universelle Objektreferenz sein.

    2. Ist der Parameter in interface-2 mit einem Interfacenamen beschrieben, muss der Parameter in interface-1 denselben Interfacenamen haben.

    3. Ist der Parameter in interface-2 mit einem Klassennamen beschrieben, dann muss der entsprechende Parameter in interface-1 denselben Klassennamen haben. Die Angaben FACTORY und ONLY müssen in beiden Schnittstellen analog vorhanden oder nicht vorhanden sein.

    4. Ist der Parameter in interface-2 mit ACTIVE-CLASS beschrieben, dann muss der entsprechende Parameter in interface-1 ebenfalls mit ACTIVE-CLASS beschrieben sein. Die Angabe FACTORY muss in beiden Schnittstellen analog vorhanden oder nicht vorhanden sein.

  3. Ist der formale Parameter einer Methode bei interface-2 keine Objektreferenz, dann müssen beim entsprechenden formalen Parameter bei interface-1 gleiche ANY LENGTH, PICTURE, USAGE, SIGN, JUSTIFIED, BLANK WHEN ZERO und SYNCHRONIZEDKlauseln angegeben sein. Zusätzliche Bedingung:
    Kommt in der Picture Klausel ein Dezimalpunkt vor, dann muss für Interface-1 und interface-2 die gleiche DECIMAL-POINT IS COMMA Klausel gelten.

  4. Das Vorhandensein oder Fehlen der RETURNING-Angabe in der Procedure Division stimmt bei einander entsprechenden Methoden überein.

  5. Ist das Rückgabe-Element bei einer Methode von interface-2 eine Objektreferenz, dann muss das entsprechende Rückgabe-Element von interface-1 auch eine Objektreferenz sein, die den folgenden Regeln entspricht:

    1. Ist das Rückgabe-Element bei interface-2 eine universelle Objektreferenz, dann muss das entsprechende Rückgabe-Element bei interface-1 ebenfalls eine Objektreferenz sein.

    2. Ist das Rückgabe-Element bei interface-2 mit einer Schnittstelle mit Namen int-r beschrieben, dann muss das entsprechende Rückgabe-Element bei interface-1 eines der folgenden sein:

      • eine Objektreferenz für eine Schnittstelle, die mit int-r konform ist

      • eine Objektreferenz für eine Klasse, gemäß folgender Regeln:

        1. ist eine FACTORY-Angabe vorhanden, muss die Fabrik(Factory)-Schnittstelle der angegebenen Klasse mit int-r konform sein

        2. fehlt die FACTORY-Angabe, muss die Objekt-Schnittstelle der angegebenen Klasse mit int-r konform sein.

    3. Ist das Rückgabe-Element bei interface-2 mit einem Klassennamen beschrieben, muss das entsprechende Rückgabe-Element bei interface-1 eine Objektreferenz sein, wobei folgende Regeln gelten:

      • ist beim Rückgabe-Element bei interface-2 die ONLY-Angabe vorhanden, dann muss das auch beim Rückgabe-Element von interface-1 der Fall sein und es muss mit demselben Klassennamen beschrieben sein.

      • ist beim Rückgabe-Element bei interface-2 keine ONLY-Angabe vorhanden, dann muss das Rückgabe-Element bei interface-1 mit dem Namen derselben Klasse oder eine ihrer untergeordneten Klassen beschrieben sein.

      • das Vorhandensein oder Fehlen der FACTORY-Angabe muss übereinstimmen.

    4. Ist beim Rückgabe-Element bei interface-1 die ACTIVE-CLASS Angabe vorhanden, dann muss dies auch beim entsprechenden Rückgabe-Element von interface-1 der Fall sein. Außerdem muss das Vorhandensein oder Fehlen der FACTORY-Angabe auch hier analog sein.
      Falls die Beschreibung des Rückgabe-Elementes einer Methode in interface-1 direkt oder indirekt auf interface-2 verweist, dann darf die Beschreibung des Rückgabe-Elementes der entsprechenden Methode in interface-2 sich weder direkt noch indirekt auf interface-1 beziehen.

  6. Ist das Rückgabe-Element einer Methode von interface-2 keine Objektreferenz, dann müssen beim korrespondierenden Rückgabe-Element gleiche ANY LENGTH, PICTURE, USAGE, SIGN, JUSTIFIED, BLANK WHEN ZERO und SYNCHRONIZED Klauseln angegeben sein. Zusätzliche Bedingung:
    Kommt in der Picture Klausel ein Dezimalpunkt vor, dann muss für Interface-1 und interface-2 die gleiche DECIMAL-POINT IS COMMA Klausel gelten.

Beispiel 12-24

Interface i1
     Methode X      keine Parameter
     Methode Y      using a mit 01 a Pic 999 usage display.
Interface i2 
     Methode Y      using b mit 01 b Pic 9(3).
Interface i3
     Methode Y      using c mit 01 c Pic 9(4)
     Methode Z      returning d mit 01 d usage object reference i1
Interface i4
     Methode Z      returning e mit 01 e usage object reference i2

Anmerkungen

  1. Interface i1 ist konform zu Interface i2, weil Methode Y aus i2 auch in i1 existiert und deren Parameter gleich beschrieben sind (9(3) ist gleichwertig mit 999 und usage display ist Standard).

  2. Interface i2 ist nicht konform zu Interface i1, weil Methode X nicht in i2 existiert.

  3. Interface i3 ist nicht konform zu Interface i2, weil zwar Methoden aus i2 auch in i3 vorhanden sind, aber die Parameter unterschiedlich beschrieben sind (9(4) statt 9(3)).

  4. Interface i3 ist konform zu i4, weil Methode Z in beiden vorkommt und die RückgabeElemente zwar nicht identisch sind, aber doch „passen“: das Interface i1 (aus der Methodendefinition von Z in i3) ist zu i2 (aus der Methodendefinition von Z in i4) konform.