org.jaudiotagger.tag.id3.framebody
Class FrameBodyIPLS

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.FrameBodyIPLS
All Implemented Interfaces:
ID3v23FrameBody

public class FrameBodyIPLS
extends AbstractID3v2FrameBody
implements ID3v23FrameBody

Involved People List ID3v22/v23 Only

Since there might be a lot of people contributing to an audio file in various ways, such as musicians and technicians, the 'Text information frames' are often insufficient to list everyone involved in a project. The 'Involved people list' is a frame containing the names of those involved, and how they were involved. The body simply contains a terminated string with the involvement directly followed by a terminated string with the involvee followed by a new involvement and so on. There may only be one "IPLS" frame in each tag.

Text encoding $xx People list strings

For more details, please refer to the ID3 specifications:

Version:
$Id: FrameBodyIPLS.java 923 2010-10-16 21:59:49Z paultaylor $
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
FrameBodyIPLS()
          Creates a new FrameBodyIPLS datatype.
FrameBodyIPLS(java.nio.ByteBuffer byteBuffer, int frameSize)
           
FrameBodyIPLS(byte textEncoding, java.lang.String text)
          Creates a new FrameBodyIPLS data type.
FrameBodyIPLS(FrameBodyIPLS body)
           
FrameBodyIPLS(FrameBodyTIPL body)
          Convert from V4 to V3 Frame
 
Method Summary
 void addPair(java.lang.String text)
           
 java.lang.String getIdentifier()
          The ID3v23 frame identifier
 java.lang.String getKeyAtIndex(int index)
          Get key at index
 int getNumberOfPairs()
           
 PairedTextEncodedStringNullTerminated.ValuePairs getPairing()
           
 java.lang.String getText()
           
 java.lang.String getUserFriendlyValue()
           
 java.lang.String getValueAtIndex(int index)
          Get value at index
 void setText(java.lang.String text)
          Set the text, decoded as pairs of involvee - involvement
protected  void setupObjectList()
          Consists of a text encoding , and then a series of null terminated Strings, there should be an even number of Strings as they are paired as involvement/involvee
 void write(java.io.ByteArrayOutputStream tagBuffer)
          Because have a text encoding we need to check the data values do not contain characters that cannot be encoded in current encoding before we write data.
 
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

FrameBodyIPLS

public FrameBodyIPLS()
Creates a new FrameBodyIPLS datatype.


FrameBodyIPLS

public FrameBodyIPLS(java.nio.ByteBuffer byteBuffer,
                     int frameSize)
              throws InvalidTagException
Throws:
InvalidTagException

FrameBodyIPLS

public FrameBodyIPLS(FrameBodyIPLS body)

FrameBodyIPLS

public FrameBodyIPLS(byte textEncoding,
                     java.lang.String text)
Creates a new FrameBodyIPLS data type.

Parameters:
textEncoding -
text -

FrameBodyIPLS

public FrameBodyIPLS(FrameBodyTIPL body)
Convert from V4 to V3 Frame

Parameters:
body -
Method Detail

getIdentifier

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

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

setText

public void setText(java.lang.String text)
Set the text, decoded as pairs of involvee - involvement

Parameters:
text -

addPair

public void addPair(java.lang.String text)

write

public void write(java.io.ByteArrayOutputStream tagBuffer)
Because have a text encoding we need to check the data values do not contain characters that cannot be encoded in current encoding before we write data. If they do change the encoding.

Overrides:
write in class AbstractID3v2FrameBody

setupObjectList

protected void setupObjectList()
Consists of a text encoding , and then a series of null terminated Strings, there should be an even number of Strings as they are paired as involvement/involvee

Specified by:
setupObjectList in class AbstractTagFrameBody

getPairing

public PairedTextEncodedStringNullTerminated.ValuePairs getPairing()

getKeyAtIndex

public java.lang.String getKeyAtIndex(int index)
Get key at index

Parameters:
index -
Returns:
value at index

getValueAtIndex

public java.lang.String getValueAtIndex(int index)
Get value at index

Parameters:
index -
Returns:
value at index

getNumberOfPairs

public int getNumberOfPairs()
Returns:
number of text pairs

getText

public java.lang.String getText()

getUserFriendlyValue

public java.lang.String getUserFriendlyValue()
Overrides:
getUserFriendlyValue in class AbstractTagFrameBody
Returns:
the text value that the user would expect to see for this framebody type, this should be overrridden for all framebodies


Copyright © 2005-2010 java.net. All Rights Reserved.