public abstract class MidiMessage extends Object implements Cloneable
Modifier and Type | Field and Description |
---|---|
protected byte[] |
data
MIDI message data.
|
protected int |
length
The total length of the MIDI message.
|
Modifier | Constructor and Description |
---|---|
protected |
MidiMessage(byte[] data)
MidiMessage contructor.
|
Modifier and Type | Method and Description |
---|---|
abstract Object |
clone()
This method may be called to create a new copy of the
Object.
|
int |
getLength()
Get the length of the MIDI message.
|
byte[] |
getMessage()
Get the MIDI message data.
|
int |
getStatus()
Get the status byte of the MIDI message (as an int)
|
protected void |
setMessage(byte[] data,
int length)
Set the complete MIDI message.
|
protected byte[] data
protected int length
protected MidiMessage(byte[] data)
data
- a valid MIDI messageprotected void setMessage(byte[] data, int length) throws InvalidMidiDataException
data
- The complete MIDI message.length
- The length of the MIDI message.InvalidMidiDataException
- Thrown when the MIDI message is invalid.public byte[] getMessage()
public int getStatus()
public int getLength()
public abstract Object clone()
Object
o == o.clone()
is falseo.getClass() == o.clone().getClass()
is trueo.equals(o)
is trueHowever, these are not strict requirements, and may
be violated if necessary. Of the three requirements, the
last is the most commonly violated, particularly if the
subclass does not override Object.equals(Object)
.
If the Object you call clone() on does not implement
Cloneable
(which is a placeholder interface), then
a CloneNotSupportedException is thrown. Notice that
Object does not implement Cloneable; this method exists
as a convenience for subclasses that do.
Object's implementation of clone allocates space for the new Object using the correct class, without calling any constructors, and then fills in all of the new field values with the old field values. Thus, it is a shallow copy. However, subclasses are permitted to make a deep copy.
All array types implement Cloneable, and override
this method as follows (it should never fail):
public Object clone() { try { super.clone(); } catch (CloneNotSupportedException e) { throw new InternalError(e.getMessage()); } }