Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- import java.util.TreeMap;
- import java.util.stream.Collectors;
- class Mileage {//odczyty przebiegu
- int kilometers;
- String vin; // asocjacja z atrybutu
- Date date;
- public Mileage(int kilometers, String vin, Date date) {
- this.kilometers = kilometers;
- this.vin = vin;
- this.date = date;
- }
- static List<Mileage> mileageList = new ArrayList<>();
- static List<Mileage> getAllValuesByVin(String byVin) {
- return mileageList.stream().filter(record -> record.vin.equals(byVin)).collect(Collectors.toList());
- }
- static void addMileageRecord(Mileage mileageToAdd) {
- mileageList.add(mileageToAdd);
- }
- }
- class Car implements Comparable<Car> {
- String brand;
- String model;
- String vin;
- static Map<Car, Client> carOwners = new TreeMap<>(); // asocjacja kwalifikowana
- public static void addOwnerToCar(Client owner, Car car) {
- if (carOwners.containsKey(car)) {
- throw new IllegalArgumentException("Car already has his owner! you have to remove it first");
- }
- carOwners.put(car, owner);
- }
- public static Client getCarOwner(Car car) {
- if (carOwners.containsKey(car)) {
- return carOwners.get(car);
- }
- throw new IllegalArgumentException("this car has no owner");
- }
- @Override
- public int compareTo(Car o) {
- return vin.compareTo(o.vin);
- }
- }
- class Purchase { // zakup czyli przyklad asocjacji z atrybutem
- Client client;
- Car car;
- Date purchaseDate;
- int price;
- public Purchase(Client client, Car car, Date purchaseDate, int price) {
- this.client = client;
- this.car = car;
- this.purchaseDate = purchaseDate;
- this.price = price;
- }
- }
- class Discount {
- private Discount(int percentage, String name) {
- this.percentage = percentage;
- this.name = name;
- }
- private int percentage;
- private String name;
- static Discount NewClientDiscount = new Discount(10, "Discount for new clients");
- static Discount NextCarDiscount = new Discount(12, "Discount for next car");
- }
- public class Client {
- public static void main(String[] args) {
- ArrayList<Discount> discountList = new ArrayList<>();
- discountList.add(Discount.NewClientDiscount);
- discountList.add(Discount.NextCarDiscount);
- Client client = new Client("Jan", 1, discountList, "jan@wp.pl", new Date(), "90121912312");
- Client client2 = new Client("Maciej", "Tomasz", 1, discountList, "maciej@wp.pl", new Date(), "14253112670");
- Client client3 = new Client("Bogdan", 3, discountList, "bogdan@wp.pl", new Date(), "80121912312");
- }
- private String name;
- private String secondName; //atrybut opcjonalny
- private long id; //atrybut prosty
- private final ArrayList<Discount> discountList = new ArrayList<>(); // asocjacja binarna
- private String email; //atrybut wymagany
- private Date creationDate; // atrybut zlozony
- private String pesel;
- private Client customerReferral;// asocjacja rekurencyjna, pole oznacza ze klient zostal polecony przez inego klienta
- public Client getCustomerReferral() {
- return customerReferral;
- }
- public void setCustomerReferral(Client customerReferral) {
- this.customerReferral = customerReferral;
- }
- private Client(String name, long id, ArrayList discountList, String email, Date creationDate, String pesel) {
- this.name = name;
- this.id = id;
- this.discountList.addAll(discountList);
- this.email = email;
- this.creationDate = creationDate;
- this.pesel = pesel;
- }
- private Client(String name, String secondName, long id, ArrayList discountList, String email, Date creationDate, String pesel) {
- this(name, id, discountList, email, creationDate, pesel);
- this.secondName = secondName;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement