---
name: "EquipmentComposite"
section: "3"
platform: "linux"
package: "libcorelinux-dev"
version: "0.4.32-5"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/EquipmentComposite"
---

# EquipmentComposite(3)

EquipmentComposite implements the TransparentComponent children management routines as well as the domain behavior of Equipment.

## NAME

EquipmentComposite - EquipmentComposite implements the TransparentComponent children management routines as well as the domain behavior of **Equipment**.

## SYNOPSIS

`#include <EquipmentComposite.hpp>`

Inherits **Equipment**.

### Public Member Functions

**EquipmentComposite** (**NameCref**)\
 *Always requires a name in derivations.*  **EquipmentComposite** (**EquipmentCompositeCref**)\
 *Copy constructor - DEEP copy.*  virtual **~EquipmentComposite** (void)\
 *Virtual destructor.*  bool **operator==** (**EquipmentCompositeCref**) const \
 *Equal if theName == theName.*  virtual **Watt** **getPower** (void)\
 *Return the power requirement.*  virtual void **addComponent** (**EquipmentPtr**)  throw (corelinux::InvalidCompositeException )\
 *Interface for adding component children to a composition.*  virtual void **removeComponent** (**EquipmentPtr**)  throw (corelinux::InvalidCompositeException )\
 *Interface for removing component children from a composition.*  virtual **corelinux::Iterator**\< **EquipmentPtr** \> \* **createIterator** (void)  throw (corelinux::InvalidCompositeException )\
 *Create a iterator and manage it's instance.*  virtual void **destroyIterator** (**corelinux::Iterator**\< **EquipmentPtr** \> \*)  throw (corelinux::InvalidCompositeException )\
 *Destroy the iterator if it is ours.*

### Protected Member Functions

**EquipmentComposite** (void)  throw (corelinux::CompositeException )\
 *Default constructor not allowed.*  **EquipmentCompositeRef** **operator=** (**EquipmentCompositeCref**)  throw (corelinux::CompositeException )\
 *Assignment operator can't overwrite name.*

## Detailed Description

EquipmentComposite implements the TransparentComponent children management routines as well as the domain behavior of **Equipment**.

In our implementation we use the EquipmentComposite as the concrete composite. Other implementations may wish to extend the **Equipment** composite to real world composit types of the problem domain.

## Member Function Documentation

### void EquipmentComposite::addComponent (EquipmentPtr aPtr) throw (corelinux::InvalidCompositeException )` [virtual]`

Interface for adding component children to a composition. The default implementation throws an exception to insure needless calls are not made to leafs components

**Parameters:**

*CompImpl* - Component instantiated with implementation

**Exceptions:**

*InvalidCompositeInstance* .RE

Reimplemented from **corelinux::TransparentComponent\< EquipmentPtr \>**.

### void EquipmentComposite::removeComponent (EquipmentPtr aPtr) throw (corelinux::InvalidCompositeException )` [virtual]`

Interface for removing component children from a composition. The default implementation throws an exception to insure needless calls are not made to leafs

**Parameters:**

*CompImpl* - Component instantiated with implementation

**Exceptions:**

*InvalidCompositeInstance* .RE

Reimplemented from **corelinux::TransparentComponent\< EquipmentPtr \>**.

## Author

Generated automatically by Doxygen for CoreLinux++ from the source code.
