package org.farng.mp3;
import java.io.IOException;
import java.io.RandomAccessFile;
/**
* This class is a facade for all classes that can write to an MP3 file. It has abstract methods that needs to be
* implemented, and a few default implementations of other methods.
*
* @author Eric Farng
* @version $Revision: 1637 $
*/
public abstract class AbstractMP3FileItem {
/**
* Creates a new AbstractMP3FileItem object.
*/
protected AbstractMP3FileItem() {
super();
}
/**
* Creates a new AbstractMP3FileItem object.
*/
protected AbstractMP3FileItem(final AbstractMP3FileItem copyObject) {
super();
}
/**
* ID string that usually corresponds to the class name, but can be displayed to the user. It is not indended to
* identify each individual instance.
*
* @return ID string
*/
public abstract String getIdentifier();
public abstract int getSize();
/**
* import java.io.IOException; import java.io.RandomAccessFile; read from current file pointer position.
*
* @param file file to read from
*
* @throws TagException on any exception generated by this library.
* @throws IOException on any I/O error
*/
public abstract void read(RandomAccessFile file) throws TagException, IOException;
/**
* Method to write this object to the file argument at is current file pointer position.
*
* @param file file to write to
*
* @throws IOException on any I/O error
*/
public abstract void write(RandomAccessFile file) throws TagException, IOException;
/**
* Returns true if this object is a subset of the argument. This instance is a subset if it is the same class as the
* argument.
*
* @param object object to determine subset of
*
* @return true if this instance and its entire object array list is a subset of the argument.
*/
public boolean isSubsetOf(final Object object) {
return object instanceof AbstractMP3FileItem;
}
/**
* Returns true if this object and its body equals the argument and its body. this object is equal if and only if
* they are the same class
*
* @param obj object to determine equality of
*
* @return true if this object and its body are equal
*/
public boolean equals(final Object obj) {
return obj instanceof AbstractMP3FileItem;
}
}