Externalizable.java revision fdb2704414a9ed92394ada0d1395e4db86889465
1/*
2 *  Licensed to the Apache Software Foundation (ASF) under one or more
3 *  contributor license agreements.  See the NOTICE file distributed with
4 *  this work for additional information regarding copyright ownership.
5 *  The ASF licenses this file to You under the Apache License, Version 2.0
6 *  (the "License"); you may not use this file except in compliance with
7 *  the License.  You may obtain a copy of the License at
8 *
9 *     http://www.apache.org/licenses/LICENSE-2.0
10 *
11 *  Unless required by applicable law or agreed to in writing, software
12 *  distributed under the License is distributed on an "AS IS" BASIS,
13 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 *  See the License for the specific language governing permissions and
15 *  limitations under the License.
16 */
17
18package java.io;
19
20/**
21 * Objects that want to be serialized/deserialized using
22 * ObjectOutputStream/ObjectInputStream but defining their own byte
23 * representation should implement this interface.
24 */
25public interface Externalizable extends Serializable {
26    /**
27     * Reads the next object from the ObjectInput <code>input</code>
28     *
29     * @param input
30     *            the ObjectInput from which the next object is read
31     *
32     * @throws IOException
33     *             If an error occurs attempting to read from this ObjectInput.
34     * @throws ClassNotFoundException
35     *             If the class of the instance being loaded cannot be found
36     */
37    public void readExternal(ObjectInput input) throws IOException,
38            ClassNotFoundException;
39
40    /**
41     * Writes the receiver to the ObjectOutput <code>output</code>.
42     *
43     * @param output
44     *            an ObjectOutput where to write the object
45     *
46     * @throws IOException
47     *             If an error occurs attempting to write to the ObjectOutput.
48     */
49    public void writeExternal(ObjectOutput output) throws IOException;
50}
51