Vorheriges Thema: Syntax des Assembly-DeskriptorsNächstes Thema: Sub-Entitäten "input" und "output"


Übersicht

Der Assembly-Deskriptor enthält eine Entität "assembly", die eine neue Komponente definiert, welche aus einigen Komponenten besteht, die entweder einfache Komponenten oder andere Assemblys sein können. Eine Assembly, die gänzlich aus Komponenten des Typs "instantiable" (die sich alle in einem Katalog befinden) besteht, wird als "instantiable" betrachtet. Wenn eine Singleton-Komponente in einer Assembly vorkommt, ist die Assembly selbst ein Singleton und kann in keinen Katalog verschoben werden.

Der Assembly-Deskriptor hat folgende Struktur:

assembly sname
   { 
   .category = text
   .description = "Text" 
   .console = " subord-name " 

   input  sname
   output  sname
   ... 

   property  sname &nbsp[ : dflt = value ] 
   property  sname &nbsp[ : mandatory ] 
   ... 
   volume sname

   subordinate  sname
      { 
       .class = clsname
        attr = val
       ... 
      } 

   connections 
      [ 
       sub-name . trm-name => sub-name . trm-name
      ....  
      ] 
   visual 
      { 
      ... 
      } 
   } 

Die folgenden Attribute sind nur für Assemblys definiert, sie haben in einfachen Komponenten keine Bedeutung:

.console

Der Name einer untergeordneten Komponente, die als Standardanmeldungsziel dieser Assembly dienen soll. Dies ermöglicht es, einen Assembly zu definieren, der sich insofern wie eine einfache Komponente verhält, indem der Assembly erlaubt wird, eine Anmeldungsanforderung auf ähnliche Weise zu akzeptieren wie es eine einfache Komponente kann, die eine Anmeldekonsole unterstützt. Da nicht jede Komponente über eine Anmeldekonsole verfügt (hängt vom BS und der darauf installierten Software ab), ist es nicht zwingend, dass eine Assembly eine Anmeldekonsole hat. Wenn die Assembly keine Anmeldekonsole braucht oder keine Komponente hat, die als solche fungieren kann, dann kann dieses Attribut weggelassen oder auf eine leere Zeichenfolge festgelegt werden. Es gibt eine spezielle Ausnahme: Wenn das Attribut nicht angegeben wird (statt es ausdrücklich auf eine leere Zeichenfolge festzulegen) und wenn die Assembly nur eine untergeordnete Komponente hat, dann wird stillschweigend davon ausgegangen, dass diese untergeordnete Komponente das Standardanmeldungsziel ist. Die durch das Attribut ".console" angegebene (oder für einzelne untergeordnete Assemblys standardmäßig angenommene) untergeordnete Komponente kann eine Assembly sein.
Es ist kein Fehler, eine untergeordnete Komponente anzugeben, die keine Konsolanmeldung unterstützt (entweder weil es eine Komponente ist, die keine Konsole hat, oder weil es eine Assembly ist, für die ".console" auf eine leere Zeichenfolge festgelegt wurde): Eine solche Einstellung bewirkt lediglich, dass die resultierende Assembly keine Konsolanmeldungen unterstützt.

Die folgenden Attribute sind für eine Assembly definiert; sie haben die gleiche Bedeutung wie ihre Gegenstücke für eine einfache Komponente:

.category

Eine willkürliche Zeichenfolge, welche die allgemeine Kategorie definiert, zu der die Komponente gehört. Dieses Attribut ist in der ADL-Syntax zulässig, wird aber nicht interpretiert. Es ist für die Verwendung durch die visuellen CA AppLogic®-Tools zur Organisierung von Komponenten in Komponentenbibliotheken (Kataloge) vorgesehen.

.description

Eine kurze Beschreibung der Komponente. Ähnlich wie beim Attribut ".category", ist der Wert dieses Attributs willkürlich und nur für Dokumentationszwecke vorgesehen.

Die Reihenfolge der Entitäten in der Assembly ist nicht wichtig und alle Sub-Entitäten sind optional. Es gilt nur, dass eine Assembly mindestens eine Entität "subordinate" enthalten muss.

Es folgt eine Zusammenfassung der Sub-Entitäten der Entität "assembly". In den nachfolgenden Abschnitten werden die einzelnen Sub-Entitäten ausführlich beschrieben:

input, output

Diese Sub-Entitäten definieren die Assembly-Terminals.

property

Definiert eine Eigenschaft der Assembly. Jede Eigenschaft muss mindestens einer Eigenschaft einer untergeordneten Komponente zugeordnet werden - siehe Entität "subordinate".

volume

Definiert eine Eigenschaft der Assembly, ähnelt der Entität "property".

subordinate

Definiert eine untergeordnete Komponente in der Assembly.

connections

Definiert die Verbindungstabelle der Assembly. Dies ist eine Array-Entität, jedes Element entspricht einer Verbindung.

visual

Daten für die visuelle Darstellung. ADL definiert die Inhalte dieser Entität nicht. Der GUI-Editor soll die Information speichern, die angeben, wie die Assembly im Fenster des Editors angezeigt wird (Farbe, Symbolform, Layout von Terminals, Layout von untergeordneten Komponenten, Routing von Verbindungen, und so weiter).
Der Inhalt dieser Entität muss den allgemeinen Syntaxregeln von UDL entsprechen, die weiter vorn in diesem Dokument im Abschnitt "Für alle Deskriptortypen geltende Syntaxregeln" vorgestellt wurden. Weitere Details finden Sie auch in der UDL-Spezifikation.