feat: #1316 Single Table Inheritance pattern implemented (#2632)

* implemented single table inheritance

* added the Java documentation for the pattern

* updated code files as per the standards

* added the puml and png diagram for the file

* added README.md

* #1316 Single Table Inheritance pattern implemented

* resolved the Checkstyle violations

* removed the tests due to build failure

* updated the code as per review

* resolved Checkstyle violations
This commit is contained in:
Ved Asole
2024-02-25 17:50:13 +05:30
committed by GitHub
parent 79d41d9336
commit b2c7410c03
16 changed files with 811 additions and 0 deletions
@@ -0,0 +1,38 @@
package com.iluwatar.entity;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
/**
* A class that extends the PassengerVehicle class
* and provides the concrete inheritance implementation of the Car.
*
* @see PassengerVehicle PassengerVehicle
* @see Vehicle Vehicle
*/
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Entity
@DiscriminatorValue(value = "TRAIN")
public class Train extends PassengerVehicle {
private int noOfCarriages;
public Train(String manufacturer, String model, int noOfPassengers, int noOfCarriages) {
super(manufacturer, model, noOfPassengers);
this.noOfCarriages = noOfCarriages;
}
// Overridden the toString method to specify the Vehicle object
@Override
public String toString() {
return "Train{"
+ super.toString()
+ '}';
}
}