File code: Flight.java
package Core;
import java.util.Date; import java.util.List; import java.util.Vector;
public class Flight {
private FlightData flightData;
public Flight() { flightData = new FlightData(); }
public void setPlaneNo(String planeNo) { this.flightData.plane.planeNo = planeNo; }
public String getPlaneNo() { return this.flightData.plane.planeNo; }
public void setPlaneName(String planeName) { this.flightData.plane.planeName = planeName; }
public String getPlaneName() { return this.flightData.plane.planeName; }
public void setCapacity(int capacity) { this.flightData.plane.capacity = capacity; }
public int getCapacity() { return this.flightData.plane.capacity; }
public String getFlightNo() { return flightData.flightNo; }
public void setFlightNo(String flightNo) { this.flightData.flightNo = flightNo; }
public String getDestinationAirport() { return flightData.destinationAirport; }
public void setDestinationAirport(String destinationAirport) { this.flightData.destinationAirport = destinationAirport; }
public String getDepartureAirport() { return flightData.departureAirport; }
public void setDepartureAirport(String departureAirport) { this.flightData.departureAirport = departureAirport; }
public Date getFlightDate() { return flightData.flightDate; }
public void setFlightDate(Date flightDate) { this.flightData.flightDate = flightDate; }
public String getArriveTime() { return flightData.arriveTime; }
public void setArriveTime(String arriveTime) { this.flightData.arriveTime = arriveTime; }
public String getDepartTime() { return flightData.departTime; }
public void setDepartTime(String departTime) { this.flightData.departTime = departTime; }
public List getPassenger() { return this.flightData.passenger; } public void setPassenger(List passenger) { this.flightData.passenger = passenger; }
public void addPassenger(Passenger passenger) { this.flightData.passenger.add(passenger); }
public void removePassenger(Passenger passenger) { this.flightData.passenger.remove(passenger); }
public List getAllFlight() { List result = new Vector(); //process to collect data Flight f1 = new Flight(); f1.setPassenger(new Passenger().getAllPassenger()); f1.setArriveTime("11:20 PM"); f1.setDepartTime("05:25 PM"); f1.setDepartureAirport("SUB"); f1.setDestinationAirport("HKG"); f1.setCapacity(120); f1.setFlightDate(new Date("2017-05-12")); f1.setFlightNo("GA-213"); f1.setPlaneNo("GFP-1009"); f1.setPlaneName("Garuda Airline Boeing 737"); result.add(f1);
Flight f2 = new Flight(); f2.setPassenger(new Passenger().getAllPassenger()); f2.setArriveTime("07:00 AM"); f2.setDepartTime("09:15 PM"); f2.setDepartureAirport("PLW"); f2.setDestinationAirport("CKG"); f2.setCapacity(90); f2.setFlightDate(new Date("2017-06-22")); f2.setFlightNo("LN-719"); f2.setPlaneNo("LFP-1009"); f2.setPlaneName("Lion Airline Boeing 737"); result.add(f2);
Flight f3 = new Flight(); f3.setPassenger(new Passenger().getAllPassenger()); f3.setArriveTime("03:25 AM"); f3.setDepartTime("09:15 AM"); f3.setDepartureAirport("CKG"); f3.setDestinationAirport("PKG"); f3.setCapacity(150); f3.setFlightDate(new Date("2017-08-02")); f3.setFlightNo("GA-715"); f3.setPlaneNo("GFP-1021"); f3.setPlaneName("Garuda Airbus"); result.add(f3);
return result; }
}
File code FlightData.java
package Core;
import java.util.AbstractList; import java.util.Date; import java.util.List; import java.util.Vector;
public class FlightData {
public class PlaneData { public String planeNo; public String planeName; public int capacity; }
public PlaneData plane = new PlaneData(); public String flightNo; public String destinationAirport; public String departureAirport; public Date flightDate; public String arriveTime; public String departTime; public List passenger = new Vector();
File Code Passenger.java
package Core;
import java.util.List; import java.util.Vector;
public class Passenger {
private String passengerName; private String bookingCode; private String identityNumber;
public List getAllPassenger() { List result = new Vector(); Passenger p1 = new Passenger(); p1.setBookingCode("GYIKJN"); p1.setIdentityNumber("18271097020001"); p1.setPassengerName("Andi Muliadi"); result.add(p1);
Passenger p2 = new Passenger(); p2.setBookingCode("ZNJGQK"); p2.setIdentityNumber("79812539720001"); p2.setPassengerName("Budi Dirgantara"); result.add(p2);
Passenger p3 = new Passenger(); p3.setBookingCode("VFZWAQ"); p3.setIdentityNumber("56783128960002"); p3.setPassengerName("Wisnu Dwi Perdana"); result.add(p3);
return result; }
public String getPassengerName() { return passengerName; }
public void setPassengerName(String passengerName) { this.passengerName = passengerName; }
public String getBookingCode() { return bookingCode; }
public void setBookingCode(String bookingCode) { this.bookingCode = bookingCode; }
public String getIdentityNumber() { return identityNumber; }
public void setIdentityNumber(String identityNumber) { this.identityNumber = identityNumber; }
public List getPassengerDetailFlightInformation() { List result = new Vector();
List allFlight = new Flight().getAllFlight();
for(int i=0;i return result; }
}
Class Diagram
Based on the code and class diagram provided, answer the following questions:
1). What type of design smell did you find in the attached code? Give an explanation!
2). Make refactoring based on the design smell found in the question above!
Flight Flight Data +Flight No : String +plane : Plane Data +flight Date : Date + destination Airport : String +departureAirport : String +arrive Time : String +departTime : String +passenger : List Passenger> -flight Data : Flight Data Plane Data +planeNo : String +planeName : String +capacity : int +EetAllFlight(): List Flights +setPlaneNo(planeNo : String) : void +pctPlaneNot) : String +set PlaneName(plane Name : String): void +getPlaneName(): String +setCapacity(capacity : int) : void +getCapacity(): int +setFlight No(flight No : String) : veid +set Destination Airport(destination Airport : String): vaid +setDestination Airport(): String +setDeparture Airport(departure Airport : Strins) : void +setDeparture Airport(): Strins + et Flight Date(): Date +setFlight Date(flight Date : Date) : void +getArriveTime(): String +setArriveTime(arrive Time : String): void +setDepartTime(departTime : String) : void +getDepartTime(): String +getPassenger() : List) : void +addPassenger(passenger : Passenger): void +removePassenger passenger : Passenger) : void +getAllFlight(): List Flights Passenger +passengerName : String +bookingCode : String +identity Number : String Flight Flight Data +Flight No : String +plane : Plane Data +flight Date : Date + destination Airport : String +departureAirport : String +arrive Time : String +departTime : String +passenger : List Passenger> -flight Data : Flight Data Plane Data +planeNo : String +planeName : String +capacity : int +EetAllFlight(): List Flights +setPlaneNo(planeNo : String) : void +pctPlaneNot) : String +set PlaneName(plane Name : String): void +getPlaneName(): String +setCapacity(capacity : int) : void +getCapacity(): int +setFlight No(flight No : String) : veid +set Destination Airport(destination Airport : String): vaid +setDestination Airport(): String +setDeparture Airport(departure Airport : Strins) : void +setDeparture Airport(): Strins + et Flight Date(): Date +setFlight Date(flight Date : Date) : void +getArriveTime(): String +setArriveTime(arrive Time : String): void +setDepartTime(departTime : String) : void +getDepartTime(): String +getPassenger() : List) : void +addPassenger(passenger : Passenger): void +removePassenger passenger : Passenger) : void +getAllFlight(): List Flights Passenger +passengerName : String +bookingCode : String +identity Number : String Flight Flight Data +Flight No : String +plane : Plane Data +flight Date : Date + destination Airport : String +departureAirport : String +arrive Time : String +departTime : String +passenger : List Passenger> -flight Data : Flight Data Plane Data +planeNo : String +planeName : String +capacity : int +EetAllFlight(): List Flights +setPlaneNo(planeNo : String) : void +pctPlaneNot) : String +set PlaneName(plane Name : String): void +getPlaneName(): String +setCapacity(capacity : int) : void +getCapacity(): int +setFlight No(flight No : String) : veid +set Destination Airport(destination Airport : String): vaid +setDestination Airport(): String +setDeparture Airport(departure Airport : Strins) : void +setDeparture Airport(): Strins + et Flight Date(): Date +setFlight Date(flight Date : Date) : void +getArriveTime(): String +setArriveTime(arrive Time : String): void +setDepartTime(departTime : String) : void +getDepartTime(): String +getPassenger() : List) : void +addPassenger(passenger : Passenger): void +removePassenger passenger : Passenger) : void +getAllFlight(): List Flights Passenger +passengerName : String +bookingCode : String +identity Number : String Flight Flight Data +Flight No : String +plane : Plane Data +flight Date : Date + destination Airport : String +departureAirport : String +arrive Time : String +departTime : String +passenger : List Passenger> -flight Data : Flight Data Plane Data +planeNo : String +planeName : String +capacity : int +EetAllFlight(): List Flights +setPlaneNo(planeNo : String) : void +pctPlaneNot) : String +set PlaneName(plane Name : String): void +getPlaneName(): String +setCapacity(capacity : int) : void +getCapacity(): int +setFlight No(flight No : String) : veid +set Destination Airport(destination Airport : String): vaid +setDestination Airport(): String +setDeparture Airport(departure Airport : Strins) : void +setDeparture Airport(): Strins + et Flight Date(): Date +setFlight Date(flight Date : Date) : void +getArriveTime(): String +setArriveTime(arrive Time : String): void +setDepartTime(departTime : String) : void +getDepartTime(): String +getPassenger() : List) : void +addPassenger(passenger : Passenger): void +removePassenger passenger : Passenger) : void +getAllFlight(): List Flights Passenger +passengerName : String +bookingCode : String +identity Number : String Flight Flight Data +Flight No : String +plane : Plane Data +flight Date : Date + destination Airport : String +departureAirport : String +arrive Time : String +departTime : String +passenger : List Passenger> -flight Data : Flight Data Plane Data +planeNo : String +planeName : String +capacity : int +EetAllFlight(): List Flights +setPlaneNo(planeNo : String) : void +pctPlaneNot) : String +set PlaneName(plane Name : String): void +getPlaneName(): String +setCapacity(capacity : int) : void +getCapacity(): int +setFlight No(flight No : String) : veid +set Destination Airport(destination Airport : String): vaid +setDestination Airport(): String +setDeparture Airport(departure Airport : Strins) : void +setDeparture Airport(): Strins + et Flight Date(): Date +setFlight Date(flight Date : Date) : void +getArriveTime(): String +setArriveTime(arrive Time : String): void +setDepartTime(departTime : String) : void +getDepartTime(): String +getPassenger() : List) : void +addPassenger(passenger : Passenger): void +removePassenger passenger : Passenger) : void +getAllFlight(): List Flights Passenger +passengerName : String +bookingCode : String +identity Number : String Flight Flight Data +Flight No : String +plane : Plane Data +flight Date : Date + destination Airport : String +departureAirport : String +arrive Time : String +departTime : String +passenger : List Passenger> -flight Data : Flight Data Plane Data +planeNo : String +planeName : String +capacity : int +EetAllFlight(): List Flights +setPlaneNo(planeNo : String) : void +pctPlaneNot) : String +set PlaneName(plane Name : String): void +getPlaneName(): String +setCapacity(capacity : int) : void +getCapacity(): int +setFlight No(flight No : String) : veid +set Destination Airport(destination Airport : String): vaid +setDestination Airport(): String +setDeparture Airport(departure Airport : Strins) : void +setDeparture Airport(): Strins + et Flight Date(): Date +setFlight Date(flight Date : Date) : void +getArriveTime(): String +setArriveTime(arrive Time : String): void +setDepartTime(departTime : String) : void +getDepartTime(): String +getPassenger() : List) : void +addPassenger(passenger : Passenger): void +removePassenger passenger : Passenger) : void +getAllFlight(): List Flights Passenger +passengerName : String +bookingCode : String +identity Number : String