FileDocCategorySizeDatePackage
FrameBodyLINK.javaAPI DocJaudiotagger 2.0.45949Wed Mar 30 16:12:02 BST 2011org.jaudiotagger.tag.id3.framebody

FrameBodyLINK

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:

author
: Paul Taylor
author
: Eric Farng
version
$Id: FrameBodyLINK.java 832 2009-11-12 13:25:38Z paultaylor $

Fields Summary
Constructors Summary
public FrameBodyLINK()
Creates a new FrameBodyLINK datatype.

        //        this.setObject("Frame Identifier", "");
        //        this.setObject("URL", "");
        //        this.setObject("ID and Additional Data", "");
    
public FrameBodyLINK(FrameBodyLINK body)

        super(body);
    
public FrameBodyLINK(String frameIdentifier, String url, String additionalData)
Creates a new FrameBodyLINK datatype.

param
frameIdentifier
param
url
param
additionalData

        this.setObjectValue(DataTypes.OBJ_DESCRIPTION, frameIdentifier);
        this.setObjectValue(DataTypes.OBJ_URL, url);
        this.setObjectValue(DataTypes.OBJ_ID, additionalData);
    
public FrameBodyLINK(ByteBuffer byteBuffer, int frameSize)
Creates a new FrameBodyLINK datatype.

param
byteBuffer
param
frameSize
throws
InvalidTagException if unable to create framebody from buffer

        super(byteBuffer, frameSize);
    
Methods Summary
public java.lang.StringgetAdditionalData()

return

        return (String) getObjectValue(DataTypes.OBJ_ID);
    
public voidgetAdditionalData(java.lang.String additionalData)

param
additionalData

        setObjectValue(DataTypes.OBJ_ID, additionalData);
    
public java.lang.StringgetFrameIdentifier()

return

        return (String) getObjectValue(DataTypes.OBJ_DESCRIPTION);
    
public voidgetFrameIdentifier(java.lang.String frameIdentifier)

param
frameIdentifier

        setObjectValue(DataTypes.OBJ_DESCRIPTION, frameIdentifier);
    
public java.lang.StringgetIdentifier()
The ID3v2 frame identifier

return
the ID3v2 frame identifier for this frame type

        return ID3v24Frames.FRAME_ID_LINKED_INFO;
    
protected voidsetupObjectList()

        objectList.add(new StringFixedLength(DataTypes.OBJ_DESCRIPTION, this, 4));
        objectList.add(new StringNullTerminated(DataTypes.OBJ_URL, this));
        objectList.add(new StringSizeTerminated(DataTypes.OBJ_ID, this));