mikegay
This commit is contained in:
parent
66c687f97d
commit
3ddd4cd48e
1 changed files with 137 additions and 12 deletions
|
|
@ -1,17 +1,142 @@
|
||||||
package EST.MiJo;
|
package EST.MiJo;
|
||||||
|
|
||||||
//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
|
import java.util.ArrayList;
|
||||||
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
|
import java.util.LinkedHashMap;
|
||||||
public class Main {
|
import java.util.List;
|
||||||
public static void main(String[] args) {
|
import java.util.Map;
|
||||||
//TIP Press <shortcut actionId="ShowIntentionActions"/> with your caret at the highlighted text
|
import java.util.Optional;
|
||||||
// to see how IntelliJ IDEA suggests fixing it.
|
|
||||||
System.out.print("Hello and welcome!");
|
|
||||||
|
|
||||||
for (int i = 1; i <= 5; i++) {
|
public class Main {
|
||||||
//TIP Press <shortcut actionId="Debug"/> to start debugging your code. We have set one <icon src="AllIcons.Debugger.Db_set_breakpoint"/> breakpoint
|
|
||||||
// for you, but you can always add more by pressing <shortcut actionId="ToggleLineBreakpoint"/>.
|
public static void main(String[] args) {
|
||||||
System.out.println("i = " + i);
|
CustomerDao customerDao = new CustomerDao();
|
||||||
|
VehicleDao vehicleDao = new VehicleDao();
|
||||||
|
RepairOrderDao repairOrderDao = new RepairOrderDao();
|
||||||
|
|
||||||
|
Customer max = customerDao.save(new Customer(null, "Max Mustermann", "max@example.com"));
|
||||||
|
Customer eva = customerDao.save(new Customer(null, "Eva Muster", "eva@example.com"));
|
||||||
|
|
||||||
|
Vehicle maxCar = vehicleDao.save(new Vehicle(null, max.id(), "VW", "Golf VIII"));
|
||||||
|
Vehicle evaCar = vehicleDao.save(new Vehicle(null, eva.id(), "BMW", "i3"));
|
||||||
|
|
||||||
|
repairOrderDao.save(new RepairOrder(null, maxCar.id(), "Inspektion & Ölwechsel"));
|
||||||
|
repairOrderDao.save(new RepairOrder(null, evaCar.id(), "Batterie prüfen"));
|
||||||
|
|
||||||
|
System.out.println("Kunden:");
|
||||||
|
customerDao.findAll()
|
||||||
|
.forEach(c -> System.out.printf("- #%d %s (%s)%n", c.id(), c.name(), c.email()));
|
||||||
|
|
||||||
|
System.out.println();
|
||||||
|
System.out.println("Fahrzeuge:");
|
||||||
|
vehicleDao.findAll()
|
||||||
|
.forEach(v -> System.out.printf("- #%d %s %s (Kunde #%d)%n", v.id(), v.manufacturer(), v.model(), v.customerId()));
|
||||||
|
|
||||||
|
System.out.println();
|
||||||
|
System.out.println("Aufträge:");
|
||||||
|
repairOrderDao.findAll()
|
||||||
|
.forEach(r -> System.out.printf("- #%d %s (Fahrzeug #%d)%n", r.id(), r.description(), r.vehicleId()));
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Dao<T> {
|
||||||
|
T save(T entity);
|
||||||
|
|
||||||
|
Optional<T> findById(Integer id);
|
||||||
|
|
||||||
|
List<T> findAll();
|
||||||
|
|
||||||
|
void delete(Integer id);
|
||||||
|
}
|
||||||
|
|
||||||
|
static class CustomerDao implements Dao<Customer> {
|
||||||
|
private final Map<Integer, Customer> store = new LinkedHashMap<>();
|
||||||
|
private int nextId = 1;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Customer save(Customer entity) {
|
||||||
|
int id = entity.id() == null ? nextId++ : entity.id();
|
||||||
|
Customer stored = new Customer(id, entity.name(), entity.email());
|
||||||
|
store.put(id, stored);
|
||||||
|
return stored;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Optional<Customer> findById(Integer id) {
|
||||||
|
return Optional.ofNullable(store.get(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Customer> findAll() {
|
||||||
|
return new ArrayList<>(store.values());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void delete(Integer id) {
|
||||||
|
store.remove(id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
static class VehicleDao implements Dao<Vehicle> {
|
||||||
|
private final Map<Integer, Vehicle> store = new LinkedHashMap<>();
|
||||||
|
private int nextId = 1;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Vehicle save(Vehicle entity) {
|
||||||
|
int id = entity.id() == null ? nextId++ : entity.id();
|
||||||
|
Vehicle stored = new Vehicle(id, entity.customerId(), entity.manufacturer(), entity.model());
|
||||||
|
store.put(id, stored);
|
||||||
|
return stored;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Optional<Vehicle> findById(Integer id) {
|
||||||
|
return Optional.ofNullable(store.get(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Vehicle> findAll() {
|
||||||
|
return new ArrayList<>(store.values());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void delete(Integer id) {
|
||||||
|
store.remove(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static class RepairOrderDao implements Dao<RepairOrder> {
|
||||||
|
private final Map<Integer, RepairOrder> store = new LinkedHashMap<>();
|
||||||
|
private int nextId = 1;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RepairOrder save(RepairOrder entity) {
|
||||||
|
int id = entity.id() == null ? nextId++ : entity.id();
|
||||||
|
RepairOrder stored = new RepairOrder(id, entity.vehicleId(), entity.description());
|
||||||
|
store.put(id, stored);
|
||||||
|
return stored;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Optional<RepairOrder> findById(Integer id) {
|
||||||
|
return Optional.ofNullable(store.get(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<RepairOrder> findAll() {
|
||||||
|
return new ArrayList<>(store.values());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void delete(Integer id) {
|
||||||
|
store.remove(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
record Customer(Integer id, String name, String email) {
|
||||||
|
}
|
||||||
|
|
||||||
|
record Vehicle(Integer id, Integer customerId, String manufacturer, String model) {
|
||||||
|
}
|
||||||
|
|
||||||
|
record RepairOrder(Integer id, Integer vehicleId, String description) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue