# Interface: com.pnfsoftware.jeb.core.units.IUnitPlugin

Definition of a unit plugin. Unit plugins are either [identifiers](IUnitIdentifier) or specialized [native plugins](INativePlugin).

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

Description: Retrieve the identity of the unit type. The type should be unique across all units.
return: the non\-null type

## Method: getPriority
- return type: `double`

Description: Get the identifier priority. Priority can be negative. Priorities are used by identifier managers \(eg, [Processors](IUnitProcessor)\) to ensure that identifiers are called in a \(partially\) predictable order, if need be. The higher the number, the higher the priority. 

 Recommendation: typical priority is zero. Relying on priority for proper identification should be used as a last resort measure.
return: the identifier priority

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

Description: Retrieve the property definition manager \(PDM\) used by this plugin.
return: the PDM

## Method: getTypeIdProvider
- return type: `com.pnfsoftware.jeb.util.serialization.ITypeIdProvider`

Description: The type\-id provider for this type of units. **Currently, This method is not intended to use by third\-party clients.**
return: a type\-id provider, null if none

## Method: initialize
- parameter: `parent`, type: `com.pnfsoftware.jeb.core.properties.IPropertyDefinitionManager`

Description: Create and initialize the property manager for this identifier. This method is usually called after construction on the identifier. 

 Overrides are allowed if a plugin needs to define its own properties, but a call to the superclass method should take place first. If not, the implementor is responsible for creating the plugins' PDM.
parameter: parent: the parent PDM

