Class ExtendedHeader


public class ExtendedHeader
extends java.lang.Object

The extended header contains information that can provide further insight in the structure of the tag, but is not vital to the correct parsing of the tag information; hence the extended header is optional.

 Extended header size   4 * %0xxxxxxx
 Number of flag bytes       $01
 Extended Flags             $xx

Where the 'Extended header size' is the size of the whole extended header, stored as a 32 bit synchsafe integer. An extended header can thus never have a size of fewer than six bytes.

The extended flags field, with its size described by 'number of flag bytes', is defined as:


Each flag that is set in the extended header has data attached, which comes in the order in which the flags are encountered (i.e. the data for flag 'b' comes before the data for flag 'c'). Unset flags cannot have any attached data. All unknown flags MUST be unset and their corresponding data removed when a tag is modified.

Every set flag's data starts with a length byte, which contains a value between 0 and 128 ($00 - $7f), followed by data that has the field length indicated by the length byte. If a flag has no attached data, the value $00 is used as length byte.

Constructor Summary
ExtendedHeader(boolean update, crc32, Restriction restriction)
Method Summary
 int getSize()
static ExtendedHeader read( in)
 void write( out)
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail


public ExtendedHeader(boolean update,
                      Restriction restriction)
Method Detail


public int getSize()


public static ExtendedHeader read( in)


public void write( out)