org.jaudiotagger.tag.id3.framebody
Class FrameBodyCRM

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.FrameBodyCRM
All Implemented Interfaces:
ID3v22FrameBody

public class FrameBodyCRM
extends AbstractID3v2FrameBody
implements ID3v22FrameBody

Encrypted meta frame

This frame contains one or more encrypted frames. This enables protection of copyrighted information such as pictures and text, that people might want to pay extra for. Since standardisation of such an encryption scheme is beyond this document, all "CRM" frames begin with a terminated string with a URL [URL] containing an email address, or a link to a location where an email adress can be found, that belongs to the organisation responsible for this specific encrypted meta frame.

Questions regarding the encrypted frame should be sent to the indicated email address. If a $00 is found directly after the 'Frame size', the whole frame should be ignored, and preferably be removed. The 'Owner identifier' is then followed by a short content description and explanation as to why it's encrypted. After the 'content/explanation' description, the actual encrypted block follows.

When an ID3v2 decoder encounters a "CRM" frame, it should send the datablock to the 'plugin' with the corresponding 'owner identifier' and expect to receive either a datablock with one or several ID3v2 frames after each other or an error. There may be more than one "CRM" frames in a tag, but only one with the same 'owner identifier'.

Encrypted meta frame "CRM" Frame size $xx xx xx Owner identifier $00 (00) Content/explanation $00 (00) Encrypted datablock


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
FrameBodyCRM()
          Creates a new FrameBodyCRM datatype.
FrameBodyCRM(java.nio.ByteBuffer byteBuffer, int frameSize)
          Creates a new FrameBodyCRM datatype.
FrameBodyCRM(FrameBodyCRM body)
           
FrameBodyCRM(java.lang.String owner, java.lang.String description, byte[] data)
          Creates a new FrameBodyCRM datatype.
 
Method Summary
 java.lang.String getIdentifier()
          The ID3v2 frame identifier
 java.lang.String getOwner()
           
 void getOwner(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
 
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

FrameBodyCRM

public FrameBodyCRM()
Creates a new FrameBodyCRM datatype.


FrameBodyCRM

public FrameBodyCRM(FrameBodyCRM body)

FrameBodyCRM

public FrameBodyCRM(java.lang.String owner,
                    java.lang.String description,
                    byte[] data)
Creates a new FrameBodyCRM datatype.

Parameters:
owner -
description -
data -

FrameBodyCRM

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

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

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

getOwner

public java.lang.String getOwner()
Returns:

getOwner

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

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