# Class: com.pnfsoftware.jeb.core.units.impl.WrapperUnit

Simple wrapper \(decorator\) unit that delegates its job to the provided [IUnit](IUnit). This decorator allows the additions of output documents as well as a customization of the unit's format type using the [IUnitProvider](IUnitProvider). For other changes in the [IUnit](IUnit), it is required to extend this class.

## Constructor: WrapperUnit
- parameter: `unit`, type: `T`
- parameter: `provider`, type: `com.pnfsoftware.jeb.core.units.IUnitProvider`

Description: Create a wrapper unit.
parameter: unit: [IUnit](IUnit) to be delegated
parameter: provider: provider that extends the unit behavior

## Method: addChild
- parameter: `unit`, type: `com.pnfsoftware.jeb.core.units.IUnit`
- parameter: `persisted`, type: `boolean`


## Method: addChild
- parameter: `unit`, type: `com.pnfsoftware.jeb.core.units.IUnit`


## Method: addListener
- parameter: `listener`, type: `com.pnfsoftware.jeb.util.events.IEventListener`


## Method: canBePersisted
- return type: `boolean`


## Method: clearAllData
- parameter: `key`, type: `java.lang.Object`


## Method: countListeners
- return type: `int`


## Method: dispose


## Method: generateQuickState
- return type: `com.pnfsoftware.jeb.core.units.IQuickStateObject`


## Method: getAllData
- return type: `java.util.Map<java.lang.Object,java.lang.Object>`


## Method: getChildren
- return type: `java.util.List<? extends com.pnfsoftware.jeb.core.units.IUnit>`


## Method: getContributions
- return type: `java.util.List<com.pnfsoftware.jeb.core.IUnitContribution>`


## Method: getCreationTimestamp
- return type: `long`


## Method: getData
- parameter: `key`, type: `java.lang.Object`
- return type: `java.lang.Object`


## Method: getDescription
- return type: `java.lang.String`


## Method: getFormatType
- return type: `java.lang.String`


## Method: getFormatter
- return type: `com.pnfsoftware.jeb.core.output.IUnitFormatter`


## Method: getIconData
- return type: `byte[]`


## Method: getInterpreters
- return type: `java.util.List<com.pnfsoftware.jeb.core.units.IUnitInterpreter>`


## Method: getListeners
- return type: `java.util.List<? extends com.pnfsoftware.jeb.util.events.IEventListener>`


## Method: getLock
- return type: `com.pnfsoftware.jeb.core.units.IUnitLock`


## Method: getName
- return type: `java.lang.String`


## Method: getNotes
- return type: `java.lang.String`


## Method: getNotificationManager
- return type: `com.pnfsoftware.jeb.core.units.IUnitNotificationManager`


## Method: getParent
- return type: `com.pnfsoftware.jeb.core.IUnitCreator`


## Method: getParentSource
- return type: `com.pnfsoftware.jeb.util.events.IEventSource`


## Method: getPropertyDefinitionManager
- return type: `com.pnfsoftware.jeb.core.properties.IPropertyDefinitionManager`


## Method: getPropertyManager
- return type: `com.pnfsoftware.jeb.core.properties.IPropertyManager`


## Method: getRealName
- return type: `java.lang.String`


## Method: getStatus
- return type: `java.lang.String`


## Method: getUid
- return type: `long`


## Method: getUnitProcessor
- return type: `com.pnfsoftware.jeb.core.units.IUnitProcessor`


## Method: getWrap
- return type: `T`

Description: Return the wrapped [IUnit](IUnit)
return: the wrapped [IUnit](IUnit)

## Method: initializePropertyObjects
- parameter: `parent`, type: `com.pnfsoftware.jeb.core.IUnitCreator`
- parameter: `processor`, type: `com.pnfsoftware.jeb.core.units.IUnitProcessor`
- parameter: `pdm`, type: `com.pnfsoftware.jeb.core.properties.IPropertyDefinitionManager`


## Method: insertListener
- parameter: `index`, type: `int`
- parameter: `listener`, type: `com.pnfsoftware.jeb.util.events.IEventListener`


## Method: isDisposed
- return type: `boolean`


## Method: isProcessed
- return type: `boolean`


## Method: isStale
- return type: `boolean`


## Method: isTransientChild
- parameter: `unit`, type: `com.pnfsoftware.jeb.core.units.IUnit`
- return type: `boolean`


## Method: notifyListeners
- parameter: `e`, type: `com.pnfsoftware.jeb.util.events.IEvent`


## Method: postDeserialization
- parameter: `prj`, type: `com.pnfsoftware.jeb.core.IRuntimeProject`


## Method: process
- return type: `boolean`


## Method: removeChild
- parameter: `unit`, type: `com.pnfsoftware.jeb.core.units.IUnit`


## Method: removeListener
- parameter: `listener`, type: `com.pnfsoftware.jeb.util.events.IEventListener`


## Method: setData
- parameter: `key`, type: `java.lang.Object`
- parameter: `value`, type: `java.lang.Object`
- parameter: `persist`, type: `boolean`


## Method: setName
- parameter: `name`, type: `java.lang.String`


## Method: setNotes
- parameter: `notes`, type: `java.lang.String`


## Method: setParent
- parameter: `parent`, type: `com.pnfsoftware.jeb.core.IUnitCreator`


## Method: setParentSource
- parameter: `parentSource`, type: `com.pnfsoftware.jeb.util.events.IEventSource`


## Method: setRealName
- parameter: `name`, type: `java.lang.String`


## Method: setUnitProcessor
- parameter: `unitProcessor`, type: `com.pnfsoftware.jeb.core.units.IUnitProcessor`


