Previous Topic: Assembly Descriptor SyntaxNext Topic: Input and Output Sub-entities


Overview

The assembly descriptor contains one assembly entity, defining a new component that consists of several components, which can be either simple components or other assemblies. An assembly that is made up entirely of instantiable components (all residing in a catalog), is itself considered instantiable. If a singleton component appears anywhere in an assembly, the assembly itself is a singleton and cannot be moved into a catalog.

The assembly descriptor has the following structure:

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 
      { 
      ... 
      } 
   } 

The following attributes are defined for assemblies only, they have no meaning in simple components:

.console

The name of a subordinate component, which will serve as the default login target for this assembly. This makes it possible to define an assembly that behaves like a simple component in the sense of allowing the assembly to accept a login request the same way as a simple component that has support for a login console can. As not every component is required to have a login console (depends on the OS and the software installed on it), an assembly is not required to have one. If the assembly does not need a login console or does not have any component that can serve as one, this attribute can be omitted or set to the empty string. As a special exception, when the attribute is omitted (rather than set explicitly to the empty string), and the assembly has only one subordinate it is silently assumed that this subordinate is the default login target. The subordinate specified by the .console attribute (or assumed by default, for single-subordinate assemblies) can itself be an assembly.
It is not an error to specify a subordinate that does not support console login (either because it is a component that has no console, or because it is an assembly that has .console set to empty): The only outcome of such a setting will be that the resulting assembly will not support console login.

The following attributes are defined for an assembly; they have the same meaning as their counterparts for a simple component:

.category

An arbitrary string that defines the general category to which the component belongs. It is allowed by the ADL syntax, but is not interpreted in any way. It is intended for use by the CA AppLogic® visual tools to organize components in component libraries (catalogs).

.description

A short description of the component. Similarly to .category, the value of this attribute is arbitrary and intended for documentation purposes only.

The order of entities in the assembly is not important and all of the sub-entities are optional, except that an assembly must have at least one subordinate entity.

Here is a summary of the sub-entities of the 'assembly' entity, followed by sub-sections defining each one in detail:

input, output

These sub-entities define the assembly's terminals.

property

Defines a property of the assembly. Each property must be connected to at least one property of a subordinate component - see the subordinate entity.

volume

Defines a property of the assembly, similar to the property entity.

subordinate

Defines a subordinate component in the assembly.

connections

Defines the assembly's connection table. This is an array entity, each element corresponds to one connection.

visual

Visual presentation data. ADL does not define the contents of this entity. It is intended for a GUI editor to store information related to how the assembly is displayed in the editor's window (color, icon shape, layout of terminals, layout of subordinate components, routing of connections, and so on).
The contents of this entity must conform to the general syntax rules of UDL, which were presented earlier in this document - in the Syntax Rules that Apply to All Descriptor Types section. Also, see the UDL specification for more details.