org.jaudiotagger.tag.id3.framebody
Class FrameBodyGEOB

java.lang.Object
  extended by org.jaudiotagger.tag.id3.AbstractTagItem
      extended by org.jaudiotagger.tag.id3.AbstractTagFrameBody
          extended by org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody
              extended by org.jaudiotagger.tag.id3.framebody.FrameBodyGEOB
All Implemented Interfaces:
ID3v23FrameBody, ID3v24FrameBody

public class FrameBodyGEOB
extends AbstractID3v2FrameBody
implements ID3v24FrameBody, ID3v23FrameBody

General encapsulated object frame.

In this frame any type of file can be encapsulated. After the header, 'Frame size' and 'Encoding' follows 'MIME type' represented as as a terminated string encoded with ISO-8859-1. The filename is case sensitive and is encoded as 'Encoding'. Then follows a content description as terminated string, encoded as 'Encoding'. The last thing in the frame is the actual object. The first two strings may be omitted, leaving only their terminations. There may be more than one "GEOB" frame in each tag, but only one with the same content descriptor.

<Header for 'General encapsulated object', ID: "GEOB">
Text encoding $xx
MIME type <text string> $00
Filename <text string according to encoding> $00 (00)
Content description $00 (00)
Encapsulated object <binary data>

For more details, please refer to the ID3 specifications:

Version:
$Id: FrameBodyGEOB.java,v 1.19 2009/11/12 15:42:56 paultaylor Exp $
Author:
: Paul Taylor, : Eric Farng

Field Summary
 
Fields inherited from class org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody
TYPE_BODY
 
Fields inherited from class org.jaudiotagger.tag.id3.AbstractTagFrameBody
objectList
 
Fields inherited from class org.jaudiotagger.tag.id3.AbstractTagItem
logger
 
Constructor Summary
FrameBodyGEOB()
          Creates a new FrameBodyGEOB datatype.
FrameBodyGEOB(java.nio.ByteBuffer byteBuffer, int frameSize)
          Creates a new FrameBodyGEOB datatype.
FrameBodyGEOB(byte textEncoding, java.lang.String mimeType, java.lang.String filename, java.lang.String description, byte[] object)
          Creates a new FrameBodyGEOB datatype.
FrameBodyGEOB(FrameBodyGEOB body)
           
 
Method Summary
 java.lang.String getDescription()
           
 java.lang.String getIdentifier()
          Return the ID3v2 Frame Identifier, must be implemented by concrete subclasses
 void setDescription(java.lang.String description)
           
protected  void setupObjectList()
          Create the list of Datatypes that this body expects in the correct order This method needs to be implemented by concrete subclasses
 void write(java.io.ByteArrayOutputStream tagBuffer)
          If the filename or description cannot be encoded using current encoder, change the encoder
 
Methods inherited from class org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody
createStructure, equals, getSize, read, setSize, setSize
 
Methods inherited from class org.jaudiotagger.tag.id3.AbstractTagFrameBody
getBriefDescription, getHeader, getLongDescription, getObject, getObjectValue, getTextEncoding, isSubsetOf, iterator, setHeader, setObjectValue, setTextEncoding, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FrameBodyGEOB

public FrameBodyGEOB()
Creates a new FrameBodyGEOB datatype.


FrameBodyGEOB

public FrameBodyGEOB(FrameBodyGEOB body)

FrameBodyGEOB

public FrameBodyGEOB(byte textEncoding,
                     java.lang.String mimeType,
                     java.lang.String filename,
                     java.lang.String description,
                     byte[] object)
Creates a new FrameBodyGEOB datatype.

Parameters:
textEncoding -
mimeType -
filename -
description -
object -

FrameBodyGEOB

public FrameBodyGEOB(java.nio.ByteBuffer byteBuffer,
                     int frameSize)
              throws InvalidTagException
Creates a new FrameBodyGEOB datatype.

Parameters:
byteBuffer -
frameSize -
Throws:
InvalidTagException - if unable to create framebody from buffer
Method Detail

setDescription

public void setDescription(java.lang.String description)
Parameters:
description -

getDescription

public java.lang.String getDescription()
Returns:
the description field

getIdentifier

public java.lang.String getIdentifier()
Description copied from class: AbstractID3v2FrameBody
Return the ID3v2 Frame Identifier, must be implemented by concrete subclasses

Specified by:
getIdentifier in class AbstractID3v2FrameBody
Returns:

write

public void write(java.io.ByteArrayOutputStream tagBuffer)
If the filename or description cannot be encoded using current encoder, change the encoder

Overrides:
write in class AbstractID3v2FrameBody

setupObjectList

protected void setupObjectList()
Description copied from class: AbstractTagFrameBody
Create the list of Datatypes that this body expects in the correct order This method needs to be implemented by concrete subclasses

Specified by:
setupObjectList in class AbstractTagFrameBody