home *** CD-ROM | disk | FTP | other *** search
Java Source | 1999-09-19 | 3.4 KB | 108 lines |
- /*
- * @(#)ReadingMaterial.java 1.1 98/10/03
- *
- * Copyright (c) 1997 Sun Microsystems, Inc. All Rights Reserved.
- *
- * This software is the confidential and proprietary information of Sun
- * Microsystems, Inc. ("Confidential Information"). You shall not
- * disclose such Confidential Information and shall use it only in
- * accordance with the terms of the license agreement you entered into
- * with Sun.
- *
- * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
- * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
- * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
- * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
- * THIS SOFTWARE OR ITS DERIVATIVES.
- *
- *
- */
-
- import java.io.*;
-
- /**
- * The Externalizable Superclass:
- * When the Externalizable Subclass Book implements its writeExternal and
- * readExternal Methods, it needs to save the state of its superclass using
- * the superclass's writeExternal and readExternal Methods
- */
- public class ReadingMaterial implements Externalizable {
-
- /*
- * In order for us to be able to serialize this data, these must be
- * either serializable/externalizable objects or primitive data types.
- */
- private String author;
- private String subject;
- private int yearwritten;
-
- // other relevant data and methods
- // .
- // .
- // .
-
- /*
- * Must have a public no-arg constructor when implementing Externalizable
- */
- public ReadingMaterial() {}
-
- /**
- * Initialize the fields
- *
- */
- public ReadingMaterial(String auth, String sub, int year) {
- author = auth;
- subject = sub;
- yearwritten = year;
- }
-
- /**
- * A public field access method, since the data fields are private and
- * will need to be accessed by the subclass to print them or use them
- * otherwise.
- */
- public String getAuthor() {
- return author; }
- /**
- * A field access method, since the data fields are private and will need
- * to be accessed by the subclass to print them or use them otherwise.
- */
- public String getSubject() {
- return subject; }
- /**
- * A field access method, since the data fields are private and will need
- * to be accessed by the subclass to print them or use them otherwise.
- */
- public int getYearwritten() {
- return yearwritten; }
-
- /**
- * Mandatory writeExternal method.
- * @serialData Write author and subject field as objects and then write
- * yearwritten field as an integer.
- */
- public void writeExternal(ObjectOutput out) throws IOException {
-
- out.writeObject(author);
- out.writeObject(subject);
- out.writeInt(yearwritten);
- }
-
- /**
- * Mandatory readExternal method. Will read in the data that we wrote out
- * in the writeExternal method. MUST BE IN THE SAME ORDER and type as we
- * wrote it out. By the time, readExternal is called, an object of this
- * class has already been created using the public no-arg constructor,
- * so this method is used to restore the data to all of the fields of the
- * newly created object.
- */
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-
- author = (String)in.readObject();
- subject = (String)in.readObject();
- yearwritten = in.readInt();
- }
- }
-
-