PrimerPackImpl (Media Authoring with Java API)
Date: 2016-02-05

tv.amwa.maj.io.mxf.impl

## Class PrimerPackImpl

- java.lang.Object
- - tv.amwa.maj.io.mxf.impl.PrimerPackImpl

- All Implemented Interfaces:
    Cloneable, MetadataObject, FixedLengthPack, PrimerPack

      @MediaClass(uuid1=218169857,
                  uuid2=261,
                  uuid3=256,
                  uuid4={6,14,43,52,2,5,1,1},
                  definedName="PrimerPack",
                  description="Table of local 2-byte tags mapped to defined identifiers.",
                  symbol="PrimerPack",
                  namespace="http://www.smpte-ra.org/rp210",
                  prefix="mxf")
      public class PrimerPackImpl
      extends Object
      implements MetadataObject, FixedLengthPack, PrimerPack

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String[]` | `packOrder`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PrimerPackImpl()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addLocalTagEntry(LocalTagEntry localTagEntry)` Create a cloned copy of this PrimerPackImpl.
    `void` | `addLocalTagEntry(PropertyDefinition propertyDefinition)` Add a local tag entry based on the given property definition, based on its local identification and globally unique identification.
    `void` | `addLocalTagEntry(short localTag, AUID uid)` Create a cloned copy of this PrimerPackImpl.
    `static long` | `addPropertiesForObject(PrimerPack primerPack, MetadataObject mdObject)`
    `void` | `clearLocalTagEntries()` Create a cloned copy of this PrimerPackImpl.
    `PrimerPack` | `clone()` Create a cloned copy of this primer pack.
    `int` | `countLocalTagEntries()` Create a cloned copy of this PrimerPackImpl.
    `static PrimerPack` | `createFromBytes(ByteBuffer buffer)`
    `static PrimerPack` | `createFromPreface(Preface preface)`
    `Set<LocalTagEntry>` | `getLocalTagEntryBatch()` Create a cloned copy of this PrimerPackImpl.
    `short` | `getNextLocalCounter()`
    `String[]` | `getPackOrder()` Returns a list of property names in the order they need to be serialized to a stream.
    `boolean` | `isLocalTagEntryPresent(LocalTagEntry localTagEntry)` Create a cloned copy of this PrimerPackImpl.
    `static int` | `lengthAsBytes(PrimerPack primerPack)`
    `Short` | `lookupLocalTag(AUID uid)` Lookup the given property identifier and find its local tag in the key-to-tag reverse lookup table of this primer pack.
    `Short` | `lookupLocalTag(PropertyDefinition propertyDefinition)` Lookup the given property's local tag in the key-to-tag reverse lookup table of this primer pack.
    `AUID` | `lookupUID(short localTag)` Lookup the given tag in the tag-to-key lookup table of this primer pack, returning the given key or `null` if the tag is not known.
    `static void` | `main(String[] args)`
    `String` | `toString()`
    `static void` | `writeAsBytes(PrimerPack primerPack, ByteBuffer buffer)`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### packOrder

          public static final String[] packOrder

  - ### Constructor Detail

    - #### PrimerPackImpl

          public PrimerPackImpl()

  - ### Method Detail

    - #### getLocalTagEntryBatch

          @MediaProperty(uuid1=100729095,
                         uuid2=5376,
                         uuid3=0,
                         uuid4={6,14,43,52,1,1,1,5},
                         definedName="LocalTagEntry Batch",
                         aliases="Local Tag Entries",
                         typeName="LocalTagEntryBatch",
                         optional=false,
                         uniqueIdentifier=false,
                         pid=0,
                         symbol="LocalTagEntryBatch")
          public Set<LocalTagEntry> getLocalTagEntryBatch()

      Create a cloned copy of this PrimerPackImpl.

      Specified by:
        `getLocalTagEntryBatch` in interface `PrimerPack`
      Returns:
        Cloned copy of this PrimerPackImpl.
      See Also:
        `TypeDefinitions.LocalTagEntryReference`, `TypeDefinitions.LocalTagEntryBatch`

    - #### addLocalTagEntry

          @MediaSetAdd(value="LocalTagEntry Batch")
          public void addLocalTagEntry(LocalTagEntry localTagEntry)
                                                                          throws NullPointerException

      Create a cloned copy of this PrimerPackImpl.

      Specified by:
        `addLocalTagEntry` in interface `PrimerPack`
      Parameters:
        `localTagEntry` - Local tag entry to add to the lookup table.
      Throws:
        `NullPointerException` - Cannot add a `null` local tag entry.
      See Also:
        `PrimerPack.addLocalTagEntry(short, AUID)`, `PrimerPack.addLocalTagEntry(PropertyDefinition)`

    - #### addLocalTagEntry

          public void addLocalTagEntry(@UInt16
                                       short localTag,
                                       AUID uid)

      Create a cloned copy of this PrimerPackImpl.

      Specified by:
        `addLocalTagEntry` in interface `PrimerPack`
      Parameters:
        `localTag` - Tag to add to the lookup table.
        `uid` - Corresponding key to add to the lookup table.
      See Also:
        `PrimerPack.addLocalTagEntry(LocalTagEntry)`, `PrimerPack.addLocalTagEntry(PropertyDefinition)`

    - #### countLocalTagEntries

          @MediaPropertyCount(value="LocalTagEntry Batch")
          public int countLocalTagEntries()

      Create a cloned copy of this PrimerPackImpl.

      Specified by:
        `countLocalTagEntries` in interface `PrimerPack`
      Returns:
        Cloned copy of this PrimerPackImpl.

    - #### clearLocalTagEntries

          @MediaPropertyClear(value="LocalTagEntry Batch")
          public void clearLocalTagEntries()

      Create a cloned copy of this PrimerPackImpl.

      Specified by:
        `clearLocalTagEntries` in interface `PrimerPack`

    - #### lookupUID

          public AUID lookupUID(@UInt16
                                short localTag)

      Description copied from interface: `PrimerPack`

      Lookup the given tag in the tag-to-key lookup table of this primer pack, returning the given key or `null` if the tag is not known.

      Specified by:
        `lookupUID` in interface `PrimerPack`
      Parameters:
        `localTag` - Tag to find and resolve to a key in the lookup table.
      Returns:
        Key corresponding to the tag or `null` if the tag is not known.

    - #### isLocalTagEntryPresent

          @MediaPropertyContains(value="LocalTagEntry Batch")
          public boolean isLocalTagEntryPresent(LocalTagEntry localTagEntry)

      Create a cloned copy of this PrimerPackImpl.

      Specified by:
        `isLocalTagEntryPresent` in interface `PrimerPack`
      Parameters:
        `localTagEntry` - Tag to check for.
      Returns:
        Cloned copy of this PrimerPackImpl.

    - #### getPackOrder

          public String[] getPackOrder()

      Description copied from interface: `FixedLengthPack`

      Returns a list of property names in the order they need to be serialized to a stream.

      Specified by:
        `getPackOrder` in interface `FixedLengthPack`
      Returns:
        List of property names in the order they need to be serialized.
      See Also:
        `MXFBuilder.readFixedLengthPack(tv.amwa.maj.record.AUID, java.nio.ByteBuffer)`, `MXFBuilder.writeFixedLengthPack(FixedLengthPack, java.nio.ByteBuffer)`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### getNextLocalCounter

          public short getNextLocalCounter()

    - #### addLocalTagEntry

          public void addLocalTagEntry(PropertyDefinition propertyDefinition)
                                throws NullPointerException

      Description copied from interface: `PrimerPack`

      Add a local tag entry based on the given property definition, based on its local identification and globally unique identification. The two identifications add an entry to the tag-to-key lookup table that makes up this primer pack.

      Specified by:
        `addLocalTagEntry` in interface `PrimerPack`
      Parameters:
        `propertyDefinition` - Property definition to use to create an entry in the tag-to-key lookup table.
      Throws:
        `NullPointerException` - Cannot use a `null` property definition.
      See Also:
        `PrimerPack.addLocalTagEntry(LocalTagEntry)`, `PrimerPack.addLocalTagEntry(short, AUID)`

    - #### lookupLocalTag

          public Short lookupLocalTag(AUID uid)
                               throws NullPointerException

      Description copied from interface: `PrimerPack`

      Lookup the given property identifier and find its local tag in the key-to-tag reverse lookup table of this primer pack.

      Specified by:
        `lookupLocalTag` in interface `PrimerPack`
      Parameters:
        `uid` - Identifier to map to a local tag.
      Returns:
        Local tag that corresponds to the given property identifier in this primer pack, or `null` if the identifier is not recognized.
      Throws:
        `NullPointerException` - Cannot find a tag for a `null` value.
      See Also:
        `PrimerPack.lookupLocalTag(PropertyDefinition)`

    - #### lookupLocalTag

          public Short lookupLocalTag(PropertyDefinition propertyDefinition)
                               throws NullPointerException

      Description copied from interface: `PrimerPack`

      Lookup the given property's local tag in the key-to-tag reverse lookup table of this primer pack.

      Specified by:
        `lookupLocalTag` in interface `PrimerPack`
      Parameters:
        `propertyDefinition` - Definition to find the local tag for.
      Returns:
        Local tag in this primer pack for the given property, or `null` if the property cannot be found.
      Throws:
        `NullPointerException` - Cannot find a tag for a `null` value.
      See Also:
        `PrimerPack.addLocalTagEntry(PropertyDefinition)`, `PrimerPack.lookupLocalTag(AUID)`

    - #### clone

          public PrimerPack clone()

      Description copied from interface: `PrimerPack`

      Create a cloned copy of this primer pack.

      Specified by:
        `clone` in interface `PrimerPack`
      Overrides:
        `clone` in class `Object`
      Returns:
        Cloned copy of this primer pack.

    - #### createFromBytes

          public static final PrimerPack createFromBytes(ByteBuffer buffer)
                                                  throws EndOfDataException

      Throws:
        `EndOfDataException`

    - #### lengthAsBytes

          public static final int lengthAsBytes(PrimerPack primerPack)
                                         throws NullPointerException

      Throws:
        `NullPointerException`

    - #### writeAsBytes

          public static final void writeAsBytes(PrimerPack primerPack,
                                                ByteBuffer buffer)
                                         throws NullPointerException,
                                                InsufficientSpaceException

      Throws:
        `NullPointerException`
        `InsufficientSpaceException`

    - #### createFromPreface

          public static final PrimerPack createFromPreface(Preface preface)
                                                    throws NullPointerException

      Throws:
        `NullPointerException`

    - #### addPropertiesForObject

          public static final long addPropertiesForObject(PrimerPack primerPack,
                                                          MetadataObject mdObject)
                                                   throws NullPointerException

      Throws:
        `NullPointerException`

    - #### main

          public static final void main(String[] args)

(c)2007-2016 Richard Cartwright, all rights reserved. Licensed under Apache 2 license and subject to the AMWA IPR policy.