Integrations (PTC products, 3rd party products and code) > Code integration (Ada, ARINC 653, C, C#, C++, IDL, Java, SQL and VB) > IDL Code > Mapping information > Summary of Mappings for IDL code (IDL code) > Component mapping for IDL (IDL code)
  
Component mapping for IDL (IDL code)
For each Component that does not own Component Parts (is not an assembly), ACS generates an IDL file that contains a component declaration. ACS generates code similar to this:
//===============================================
/// @file Component1.idl
//===============================================
#ifndef COMPONENT1_IDL
#define COMPONENT1_IDL
#include <Components.idl>
#pragma ciao lem "Component1E.idl"
component Component1
{
...
};
#endif
Note that ACS generates an IDL file for a Component only if it owns at least one Attribute, Client, Extended Port (Publisher), Service or Extended Port (Consumer). If you want ACS to not generate an IDL file for a Component that owns one of the preceding items, apply the «Source» stereotype from the IDL Profile to the Component, and set the Ignore tag definition to TRUE.
For each Component that owns Component Parts (is an assembly), ACS generates an Implementation element in the appropriate Component Deployment Plan (CDP) file.
The generation of a Component in an IDL file is derived from the items it owns and properties of the Component.
Child items:
If the Component owns Attributes, ACS generates attribute declarations. For Attribute mapping information, see Attribute mapping for IDL (IDL code).
If the Component owns Clients, ACS generates uses declarations for those clients. For Client mapping information, see Component mapping for IDL (IDL code).
If the Component owns Component Parts, the Component Part becomes an assembly and ACS does not generate an IDL file, ACS generates an Implementation element in the appropriate Component Deployment Plan (CDP) file.
If the Component owns Connector Instances, ACS uses those Connector Instances for generating CDP files. For Connector Instance mapping information, see Connector instance mapping for IDL (IDL code).
If the Component owns Extended Port (Consumers), ACS generates port declarations for those Extended Port (Consumers). For Extended Port (Consumer) mapping information, see Extended port (consumer) mapping for IDL (IDL code).
If the Component owns Extended Port (Publishers), ACS generates port declarations for those Extended Port (Publishers). For Extended Port (Publisher) mapping information, see extended port (publisher) mapping for IDL (IDL code).
If the Component owns Services, ACS generates provides declarations for those services. For Service mapping information, see Service mapping for IDL (IDL code).
Properties:
If the Description property has a value, ACS generates the Description as a comment at the beginning of the IDL file.
ACS generates the Name property as the name of the component in the code.
Note ACS may modify the component name that is added to the code to make it valid for IDL. You can specify the exact component name to add to the code through the CODE_GENERATION_NAME property of a Component. Tell me more...
Other properties are ignored.
Tag Definitions:
The following Tag Definitions are applied to a Component by the «Component» stereotype.
attributes - derived property that lists the Component's Attributes.
clientPorts - derived property that lists the Component's Clients.
consumerPorts - this property is not used at present.
extendedConsumerPorts - derived property that lists the Component's Extended Port (Consumers).
extendedPublisherPorts - derived property that lists the Component's Extended Port (Publishers).
isAssembly - derived property that shows whether the Component is an assembly: TRUE means the Component has Component Parts; FALSE means the Component does not have any Component Parts.
parts - derived property that lists the Component's Component Parts.
publisherPorts - this property is not used at present.
servicePorts - derived property that lists the Component's Services.