org.jaudiotagger.tag.id3.framebody
Class FrameBodyLINK

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.FrameBodyLINK
All Implemented Interfaces:
ID3v23FrameBody, ID3v24FrameBody

public class FrameBodyLINK
extends AbstractID3v2FrameBody
implements ID3v24FrameBody, ID3v23FrameBody

Linked information frame.

To keep space waste as low as possible this frame may be used to link information from another ID3v2 tag that might reside in another audio file or alone in a binary file. It is recommended that this method is only used when the files are stored on a CD-ROM or other circumstances when the risk of file seperation is low. The frame contains a frame identifier, which is the frame that should be linked into this tag, a URL field, where a reference to the file where the frame is given, and additional ID data, if needed. Data should be retrieved from the first tag found in the file to which this link points. There may be more than one "LINK" frame in a tag, but only one with the same contents. A linked frame is to be considered as part of the tag and has the same restrictions as if it was a physical part of the tag (i.e. only one "RVRB" frame allowed, whether it's linked or not).

<Header for 'Linked information', ID: "LINK">
Frame identifier $xx xx xx
URL <text string> $00
ID and additional data<text string(s)>

Frames that may be linked and need no additional data are "IPLS", "MCID", "ETCO", "MLLT", "SYTC", "RVAD", "EQUA", "RVRB", "RBUF", the text information frames and the URL link frames.

The "TXXX", "APIC", "GEOB" and "AENC" frames may be linked with the content descriptor as additional ID data.

The "COMM", "SYLT" and "USLT" frames may be linked with three bytes of language descriptor directly followed by a content descriptor as additional ID data.

For more details, please refer to the ID3 specifications:

Version:
$Id: FrameBodyLINK.java,v 1.14 2009/11/12 13:25:22 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
FrameBodyLINK()
          Creates a new FrameBodyLINK datatype.
FrameBodyLINK(java.nio.ByteBuffer byteBuffer, int frameSize)
          Creates a new FrameBodyLINK datatype.
FrameBodyLINK(FrameBodyLINK body)
           
FrameBodyLINK(java.lang.String frameIdentifier, java.lang.String url, java.lang.String additionalData)
          Creates a new FrameBodyLINK datatype.
 
Method Summary
 java.lang.String getAdditionalData()
           
 void getAdditionalData(java.lang.String additionalData)
           
 java.lang.String getFrameIdentifier()
           
 void getFrameIdentifier(java.lang.String frameIdentifier)
           
 java.lang.String getIdentifier()
          The ID3v2 frame identifier
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
 
Methods inherited from class org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody
createStructure, equals, getSize, read, setSize, setSize, write
 
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

FrameBodyLINK

public FrameBodyLINK()
Creates a new FrameBodyLINK datatype.


FrameBodyLINK

public FrameBodyLINK(FrameBodyLINK body)

FrameBodyLINK

public FrameBodyLINK(java.lang.String frameIdentifier,
                     java.lang.String url,
                     java.lang.String additionalData)
Creates a new FrameBodyLINK datatype.

Parameters:
frameIdentifier -
url -
additionalData -

FrameBodyLINK

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

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

getAdditionalData

public java.lang.String getAdditionalData()
Returns:

getAdditionalData

public void getAdditionalData(java.lang.String additionalData)
Parameters:
additionalData -

getFrameIdentifier

public java.lang.String getFrameIdentifier()
Returns:

getFrameIdentifier

public void getFrameIdentifier(java.lang.String frameIdentifier)
Parameters:
frameIdentifier -

getIdentifier

public java.lang.String getIdentifier()
The ID3v2 frame identifier

Specified by:
getIdentifier in class AbstractID3v2FrameBody
Returns:
the ID3v2 frame identifier for this frame type

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