Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Enhancing the code, make all of the objects serializable and demonstrate the fol

ID: 3688004 • Letter: E

Question

Enhancing the code, make all of the objects serializable and demonstrate the following:

Initialize a set of objects and write them out to a file using ObjectOutput.

Read the objects back in from your file and instantiate them using ObjectInput.

Verify they were instantiated correctly by writing them out using the toString method.

The code provided:

public class TestMethod {

   public static void main( String[] args )

   {

       //create the customer object which is sub class of user

       Customer customer = new Customer();

       customer.setFirstName("Sean");

       customer.setLastName("D");

       customer.setUserId("xx497");

       customer.setCustomerID("101CID");

       //demonstrates toString method

       System.out.println(customer);

       //create the Car CarReservation which is sub class of TravelReservation

       CarReservation reservation = new CarReservation();

       reservation.setConfirmationNumber("12");

       reservation.setStartDate("12-4-2016");

       reservation.setEndDate("12-24-2016");

       reservation.setStartingMilage("100");

       reservation.setEndingMilage("920");

       reservation.setPrice("10000USD");

       reservation.setStatus("Boooked");

       //demonstrates toString method

       System.out.println(reservation);

   }

}

//Required classes

class User {

   String firstName;

   String lastName;

   String userId;

   String password;

   String[] addresses;

   public String getFirstName()

   {

       return firstName;

   }

   public void setFirstName( String firstName )

   {

       this.firstName = firstName;

   }

   public String getLastName()

   {

       return lastName;

   }

   public void setLastName( String lastName )

   {

       this.lastName = lastName;

   }

   public String getUserId()

   {

       return userId;

   }

   public void setUserId( String userId )

   {

       this.userId = userId;

   }

   public String getPassword()

   {

       return password;

   }

   public void setPassword( String password )

   {

       this.password = password;

   }

   public String[] getAddresses()

   {

       return addresses;

   }

   public void setAddresses( String[] addresses )

   {

       this.addresses = addresses;

   }

   @Override

   public String toString()

   {

       return "First name:" + firstName + ",LastName:" + lastName + ",UserId:" + userId;

   }

}

class Customer extends User {

   String customerID;

   String[] creditCardNums;

   public String getCustomerID()

   {

       return customerID;

   }

   public void setCustomerID( String customerID )

   {

       this.customerID = customerID;

   }

   @Override

   public String toString()

   {

       return super.toString() + "," + "CustomerID:" + customerID;

   }

}

class TravelReservation {

   String confirmationNumber;

   String price;

   String startDate;

   String endDate;

   String status;

   public String getConfirmationNumber()

   {

       return confirmationNumber;

   }

   public void setConfirmationNumber( String confirmationNumber )

   {

       this.confirmationNumber = confirmationNumber;

   }

   public String getPrice()

   {

       return price;

   }

   public void setPrice( String price )

   {

       this.price = price;

   }

   public String getStartDate()

   {

       return startDate;

   }

   public void setStartDate( String startDate )

   {

       this.startDate = startDate;

   }

   public String getEndDate()

   {

       return endDate;

   }

   public void setEndDate( String endDate )

   {

       this.endDate = endDate;

   }

   public String getStatus()

   {

       return status;

   }

   public void setStatus( String status )

   {

       this.status = status;

   }

   @Override

   public String toString()

   {

       return "Confirmation Number:" + confirmationNumber + ",price=" + price + ",start date:" + startDate

               + ",end date:" + endDate + ",status:" + status;

   }

}

class CarReservation extends TravelReservation {

   String startingMilage;

   String endingMilage;

public String getStartingMilage()

   {

       return startingMilage;

   }

   public void setStartingMilage( String startingMilage )

   {

       this.startingMilage = startingMilage;

   }

   public String getEndingMilage()

   {

       return endingMilage;

   }

   public void setEndingMilage( String endingMilage )

   {

       this.endingMilage = endingMilage;

   }

   @Override

   public String toString()

   {

       return super.toString() + ",starting mileage:" + startingMilage + ",ending mileage"" + endingMilage;

   }

}

class FlightReservation extends TravelReservation {

   String flightStatus;

   public String getFlightStatus()

   {

       return flightStatus;

   }

   public void setFlightStatus( String flightStatus )

   {

       this.flightStatus = flightStatus;

   }

   @Override

   public String toString()

   {

       return super.toString() + ",Flight Status:" + flightStatus;

   }

}

Explanation / Answer

import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

public class Serializer {

public static void main (String args[]) {
  
   Serializer serializer = new Serializer();
   serializer.serializeAddress();
}

public void serializeAddress(){
try {

Address address = new Address();
Customer customer = new Customer();
customer.setFirstName("Sean");
customer.setLastName("D");
customer.setUserId("xx497");
customer.setCustomerID("101CID");
System.out.println(customer);
CarReservation reservation = new CarReservation();
reservation.setConfirmationNumber("12");
reservation.setStartDate("12-4-2016");
reservation.setEndDate("12-24-2016");
reservation.setStartingMilage("100");
reservation.setEndingMilage("920");
reservation.setPrice("10000USD");
reservation.setStatus("Boooked");
System.out.println(reservation);
     
   try{
         
       FileOutputStream fout = new FileOutputStream("objectOut.ser");
       ObjectOutputStream oos = new ObjectOutputStream(fout);   
       oos.writeObject(address);
       oos.close();
       System.out.println("Done");
         
   }catch(Exception ex){
       ex.printStackTrace();
   }
}
}

//Required classes
public class User implements Serializable {

String firstName;
String lastName;
String userId;
String password;
String[] addresses;

public String getFirstName()
{
return firstName;
}

public void setFirstName( String firstName )
{
this.firstName = firstName;
}

public String getLastName()
{
return lastName;
}

public void setLastName( String lastName )
{
this.lastName = lastName;
}

public String getUserId()
{
return userId;
}

public void setUserId( String userId )
{
this.userId = userId;
}

public String getPassword()
{
return password;
}

public void setPassword( String password )
{
this.password = password;
}

public String[] getAddresses()
{
return addresses;
}

public void setAddresses( String[] addresses )
{
this.addresses = addresses;
}

@Override
public String toString()
{
return "First name:" + firstName + ",LastName:" + lastName + ",UserId:" + userId;
}
}

public class Customer extends User implements Serializable {

String customerID;
String[] creditCardNums;

public String getCustomerID()
{
return customerID;
}

public void setCustomerID( String customerID )
{
this.customerID = customerID;
}

@Override
public String toString()
{
return super.toString() + "," + "CustomerID:" + customerID;
}

}

public class TravelReservation implements Serializable {

String confirmationNumber;
String price;
String startDate;
String endDate;
String status;

public String getConfirmationNumber()
{
return confirmationNumber;
}

public void setConfirmationNumber( String confirmationNumber )
{
this.confirmationNumber = confirmationNumber;
}

public String getPrice()
{
return price;
}

public void setPrice( String price )
{
this.price = price;
}

public String getStartDate()
{
return startDate;
}

public void setStartDate( String startDate )
{
this.startDate = startDate;
}

public String getEndDate()
{
return endDate;
}

public void setEndDate( String endDate )
{
this.endDate = endDate;
}

public String getStatus()
{
return status;
}

public void setStatus( String status )
{
this.status = status;
}

@Override
public String toString()
{
return "Confirmation Number:" + confirmationNumber + ",price=" + price + ",start date:" + startDate
+ ",end date:" + endDate + ",status:" + status;
}

}

public class CarReservation extends TravelReservation implements Serializable {

String startingMilage;
String endingMilage;

public String getStartingMilage()
{
return startingMilage;
}

public void setStartingMilage( String startingMilage )
{
this.startingMilage = startingMilage;
}

public String getEndingMilage()
{
return endingMilage;
}

public void setEndingMilage( String endingMilage )
{
this.endingMilage = endingMilage;
}

@Override
public String toString()
{
return super.toString() + ",starting mileage:" + startingMilage + ",ending mileage"" + endingMilage;
}

}

public class FlightReservation extends TravelReservation implements Serializable {

String flightStatus;

public String getFlightStatus()
{
return flightStatus;
}

public void setFlightStatus( String flightStatus )
{
this.flightStatus = flightStatus;
}

@Override
public String toString()
{
return super.toString() + ",Flight Status:" + flightStatus;
}

}