# Class: com.pnfsoftware.jeb.core.units.code.asm.type.TypeLibraryMetadata

Metadata header for type library binary files. Refer to [ITypeLibrary](ITypeLibrary) for details about methods.

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

Description: Retrieve the type library author.
return: author

## Method: getCompilerType
- return type: `com.pnfsoftware.jeb.core.units.codeobject.CompilerType`

Description: Retrieve the target compiler type.
return: compiler type, or null

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

Description: Retrieve the creation timestamp.
return: creation timestamp in seconds since the Unix epoch

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

Description: Retrieve a custom metadata entry.
parameter: key: metadata key
return: metadata value, or null

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

Description: Retrieve the type library description.
return: description

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

Description: Retrieve the type library group id.
return: group id

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

Description: Retrieve the type library name.
return: name

## Method: getPrimaryProcessorType
- return type: `com.pnfsoftware.jeb.core.units.codeobject.ProcessorType`

Description: Retrieve the primary target processor type.
return: primary processor type, or null

## Method: getPrimarySubsystemType
- return type: `com.pnfsoftware.jeb.core.units.codeobject.SubsystemType`

Description: Retrieve the primary target subsystem type.
return: primary subsystem type, or null

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

Description: Retrieve the priority order within the group.
return: priority order

## Method: getProcessorTypes
- return type: `java.util.List<com.pnfsoftware.jeb.core.units.codeobject.ProcessorType>`

Description: Retrieve all target processor types.
return: processor types

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

Description: Retrieve the standard packing value used by the compiler to align structure fields if nothing was explicitly specified. For type readers, this value is informative and may not be present \(in which case, the method returns 0\). For type generators, this value is important as it is used to generate proper structure layouts.
return: 0 means unknown or not set; negative values are illegal; the value         [Integer#MAX_VALUE](Integer#MAX_VALUE) means that struct members are aligned on the underlying         primitive size

## Method: getSubsystemTypes
- return type: `java.util.List<com.pnfsoftware.jeb.core.units.codeobject.SubsystemType>`

Description: Retrieve all target subsystem types.
return: subsystem types

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

Description: Retrieve the metadata UUID.
return: UUID

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

Description: Retrieve the metadata version.
return: version

## Method: putData
- parameter: `map`, type: `java.util.Map<? extends java.lang.String,? extends java.lang.Object>`

Description: Add custom metadata entries.
parameter: map: metadata entries

## Method: putData
- parameter: `key`, type: `java.lang.String`
- parameter: `value`, type: `java.lang.Object`

Description: Add a custom metadata entry.
parameter: key: metadata key
parameter: value: metadata value

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


## Static Method: create
- parameter: `processorType`, type: `com.pnfsoftware.jeb.core.units.codeobject.ProcessorType`
- parameter: `subsystemType`, type: `com.pnfsoftware.jeb.core.units.codeobject.SubsystemType`
- parameter: `compilerType`, type: `com.pnfsoftware.jeb.core.units.codeobject.CompilerType`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.type.TypeLibraryMetadata`

Description: Create type library metadata for a single processor/subsystem/compiler target.
parameter: processorType: processor type
parameter: subsystemType: subsystem type
parameter: compilerType: compiler type
return: metadata object

## Static Method: create
- parameter: `processorType`, type: `com.pnfsoftware.jeb.core.units.codeobject.ProcessorType`
- parameter: `subsystemType`, type: `com.pnfsoftware.jeb.core.units.codeobject.SubsystemType`
- parameter: `compilerType`, type: `com.pnfsoftware.jeb.core.units.codeobject.CompilerType`
- parameter: `standardPackingAlignment`, type: `int`
- parameter: `groupId`, type: `int`
- parameter: `priorityOrder`, type: `double`
- parameter: `uuid`, type: `int`
- parameter: `version`, type: `int`
- parameter: `name`, type: `java.lang.String`
- parameter: `description`, type: `java.lang.String`
- parameter: `author`, type: `java.lang.String`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.type.TypeLibraryMetadata`

Description: Create type library metadata for a single processor/subsystem/compiler target.
parameter: processorType: processor type
parameter: subsystemType: subsystem type
parameter: compilerType: compiler type
parameter: standardPackingAlignment: standard packing alignment
parameter: groupId: type library group id
parameter: priorityOrder: priority order within the group
parameter: uuid: metadata UUID
parameter: version: metadata version
parameter: name: type library name
parameter: description: type library description
parameter: author: type library author
return: metadata object

## Static Method: create
- parameter: `processorTypes`, type: `java.util.List<com.pnfsoftware.jeb.core.units.codeobject.ProcessorType>`
- parameter: `subsystemTypes`, type: `java.util.List<com.pnfsoftware.jeb.core.units.codeobject.SubsystemType>`
- parameter: `compilerType`, type: `com.pnfsoftware.jeb.core.units.codeobject.CompilerType`
- parameter: `standardPackingAlignment`, type: `int`
- parameter: `groupId`, type: `int`
- parameter: `priorityOrder`, type: `double`
- parameter: `uuid`, type: `int`
- parameter: `version`, type: `int`
- parameter: `name`, type: `java.lang.String`
- parameter: `description`, type: `java.lang.String`
- parameter: `author`, type: `java.lang.String`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.type.TypeLibraryMetadata`

Description: Create type library metadata.
parameter: processorTypes: target processor types
parameter: subsystemTypes: target subsystem types
parameter: compilerType: target compiler type
parameter: standardPackingAlignment: standard packing alignment
parameter: groupId: type library group id
parameter: priorityOrder: priority order within the group
parameter: uuid: metadata UUID
parameter: version: metadata version
parameter: name: type library name
parameter: description: type library description
parameter: author: type library author
return: metadata object

