1 /*
2 * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
43 * @author Kara Kytle
44 * @since 1.3
45 */
46 public abstract class MidiFileReader {
47
48 /**
49 * Obtains the MIDI file format of the input stream provided. The stream
50 * must point to valid MIDI file data. In general, MIDI file readers may
51 * need to read some data from the stream before determining whether they
52 * support it. These parsers must be able to mark the stream, read enough
53 * data to determine whether they support the stream, and, if not, reset the
54 * stream's read pointer to its original position. If the input stream does
55 * not support this, this method may fail with an {@code IOException}.
56 *
57 * @param stream the input stream from which file format information
58 * should be extracted
59 * @return a {@code MidiFileFormat} object describing the MIDI file format
60 * @throws InvalidMidiDataException if the stream does not point to valid
61 * MIDI file data recognized by the system
62 * @throws IOException if an I/O exception occurs
63 * @see InputStream#markSupported
64 * @see InputStream#mark
65 */
66 public abstract MidiFileFormat getMidiFileFormat(InputStream stream)
67 throws InvalidMidiDataException, IOException;
68
69 /**
70 * Obtains the MIDI file format of the URL provided. The URL must point to
71 * valid MIDI file data.
72 *
73 * @param url the URL from which file format information should be
74 * extracted
75 * @return a {@code MidiFileFormat} object describing the MIDI file format
76 * @throws InvalidMidiDataException if the URL does not point to valid MIDI
77 * file data recognized by the system
78 * @throws IOException if an I/O exception occurs
79 */
80 public abstract MidiFileFormat getMidiFileFormat(URL url)
81 throws InvalidMidiDataException, IOException;
82
83 /**
84 * Obtains the MIDI file format of the {@code File} provided. The
85 * {@code File} must point to valid MIDI file data.
86 *
87 * @param file the {@code File} from which file format information should
88 * be extracted
89 * @return a {@code MidiFileFormat} object describing the MIDI file format
90 * @throws InvalidMidiDataException if the {@code File} does not point to
91 * valid MIDI file data recognized by the system
92 * @throws IOException if an I/O exception occurs
93 */
94 public abstract MidiFileFormat getMidiFileFormat(File file)
95 throws InvalidMidiDataException, IOException;
96
97 /**
98 * Obtains a MIDI sequence from the input stream provided. The stream must
99 * point to valid MIDI file data. In general, MIDI file readers may need to
100 * read some data from the stream before determining whether they support
101 * it. These parsers must be able to mark the stream, read enough data to
102 * determine whether they support the stream, and, if not, reset the
103 * stream's read pointer to its original position. If the input stream does
104 * not support this, this method may fail with an IOException.
105 *
106 * @param stream the input stream from which the {@code Sequence} should
107 * be constructed
108 * @return a {@code Sequence} object based on the MIDI file data contained
109 * in the input stream
110 * @throws InvalidMidiDataException if the stream does not point to valid
111 * MIDI file data recognized by the system
112 * @throws IOException if an I/O exception occurs
113 * @see InputStream#markSupported
114 * @see InputStream#mark
115 */
116 public abstract Sequence getSequence(InputStream stream)
117 throws InvalidMidiDataException, IOException;
118
119 /**
120 * Obtains a MIDI sequence from the URL provided. The URL must point to
121 * valid MIDI file data.
122 *
123 * @param url the URL for which the {@code Sequence} should be constructed
124 * @return a {@code Sequence} object based on the MIDI file data pointed to
125 * by the URL
126 * @throws InvalidMidiDataException if the URL does not point to valid MIDI
127 * file data recognized by the system
128 * @throws IOException if an I/O exception occurs
129 */
130 public abstract Sequence getSequence(URL url)
131 throws InvalidMidiDataException, IOException;
132
133 /**
134 * Obtains a MIDI sequence from the {@code File} provided. The {@code File}
135 * must point to valid MIDI file data.
136 *
137 * @param file the {@code File} from which the {@code Sequence} should be
138 * constructed
139 * @return a {@code Sequence} object based on the MIDI file data pointed to
140 * by the {@code File}
141 * @throws InvalidMidiDataException if the {@code File} does not point to
142 * valid MIDI file data recognized by the system
143 * @throws IOException if an I/O exception occurs
144 */
145 public abstract Sequence getSequence(File file)
146 throws InvalidMidiDataException, IOException;
147 }
|
1 /*
2 * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
43 * @author Kara Kytle
44 * @since 1.3
45 */
46 public abstract class MidiFileReader {
47
48 /**
49 * Obtains the MIDI file format of the input stream provided. The stream
50 * must point to valid MIDI file data. In general, MIDI file readers may
51 * need to read some data from the stream before determining whether they
52 * support it. These parsers must be able to mark the stream, read enough
53 * data to determine whether they support the stream, and, if not, reset the
54 * stream's read pointer to its original position. If the input stream does
55 * not support this, this method may fail with an {@code IOException}.
56 *
57 * @param stream the input stream from which file format information
58 * should be extracted
59 * @return a {@code MidiFileFormat} object describing the MIDI file format
60 * @throws InvalidMidiDataException if the stream does not point to valid
61 * MIDI file data recognized by the system
62 * @throws IOException if an I/O exception occurs
63 * @throws NullPointerException if {@code stream} is {@code null}
64 * @see InputStream#markSupported
65 * @see InputStream#mark
66 */
67 public abstract MidiFileFormat getMidiFileFormat(InputStream stream)
68 throws InvalidMidiDataException, IOException;
69
70 /**
71 * Obtains the MIDI file format of the URL provided. The URL must point to
72 * valid MIDI file data.
73 *
74 * @param url the URL from which file format information should be
75 * extracted
76 * @return a {@code MidiFileFormat} object describing the MIDI file format
77 * @throws InvalidMidiDataException if the URL does not point to valid MIDI
78 * file data recognized by the system
79 * @throws IOException if an I/O exception occurs
80 * @throws NullPointerException if {@code url} is {@code null}
81 */
82 public abstract MidiFileFormat getMidiFileFormat(URL url)
83 throws InvalidMidiDataException, IOException;
84
85 /**
86 * Obtains the MIDI file format of the {@code File} provided. The
87 * {@code File} must point to valid MIDI file data.
88 *
89 * @param file the {@code File} from which file format information should
90 * be extracted
91 * @return a {@code MidiFileFormat} object describing the MIDI file format
92 * @throws InvalidMidiDataException if the {@code File} does not point to
93 * valid MIDI file data recognized by the system
94 * @throws IOException if an I/O exception occurs
95 * @throws NullPointerException if {@code file} is {@code null}
96 */
97 public abstract MidiFileFormat getMidiFileFormat(File file)
98 throws InvalidMidiDataException, IOException;
99
100 /**
101 * Obtains a MIDI sequence from the input stream provided. The stream must
102 * point to valid MIDI file data. In general, MIDI file readers may need to
103 * read some data from the stream before determining whether they support
104 * it. These parsers must be able to mark the stream, read enough data to
105 * determine whether they support the stream, and, if not, reset the
106 * stream's read pointer to its original position. If the input stream does
107 * not support this, this method may fail with an IOException.
108 *
109 * @param stream the input stream from which the {@code Sequence} should
110 * be constructed
111 * @return a {@code Sequence} object based on the MIDI file data contained
112 * in the input stream
113 * @throws InvalidMidiDataException if the stream does not point to valid
114 * MIDI file data recognized by the system
115 * @throws IOException if an I/O exception occurs
116 * @throws NullPointerException if {@code stream} is {@code null}
117 * @see InputStream#markSupported
118 * @see InputStream#mark
119 */
120 public abstract Sequence getSequence(InputStream stream)
121 throws InvalidMidiDataException, IOException;
122
123 /**
124 * Obtains a MIDI sequence from the URL provided. The URL must point to
125 * valid MIDI file data.
126 *
127 * @param url the URL for which the {@code Sequence} should be constructed
128 * @return a {@code Sequence} object based on the MIDI file data pointed to
129 * by the URL
130 * @throws InvalidMidiDataException if the URL does not point to valid MIDI
131 * file data recognized by the system
132 * @throws IOException if an I/O exception occurs
133 * @throws NullPointerException if {@code url} is {@code null}
134 */
135 public abstract Sequence getSequence(URL url)
136 throws InvalidMidiDataException, IOException;
137
138 /**
139 * Obtains a MIDI sequence from the {@code File} provided. The {@code File}
140 * must point to valid MIDI file data.
141 *
142 * @param file the {@code File} from which the {@code Sequence} should be
143 * constructed
144 * @return a {@code Sequence} object based on the MIDI file data pointed to
145 * by the {@code File}
146 * @throws InvalidMidiDataException if the {@code File} does not point to
147 * valid MIDI file data recognized by the system
148 * @throws IOException if an I/O exception occurs
149 * @throws NullPointerException if {@code file} is {@code null}
150 */
151 public abstract Sequence getSequence(File file)
152 throws InvalidMidiDataException, IOException;
153 }
|