diff --git a/oop/code/oop/src/main/java/com/scaler/lld/questions/FileHandler.java b/oop/code/oop/src/main/java/com/scaler/lld/questions/FileHandler.java new file mode 100644 index 0000000..6cae5fb --- /dev/null +++ b/oop/code/oop/src/main/java/com/scaler/lld/questions/FileHandler.java @@ -0,0 +1,30 @@ +package com.scaler.lld.questions; + +import jdk.internal.event.Event; + +import java.io.File; +import java.util.List; + +public class FileHandler { + + private String path; + public File ReadFile(String path) + { + //return Filecontent + return null; + } + + public void CreateFile(List fileContent) + { + getPath(); + //create a file + } + + public String getPath() + { + //read path from user; + return this.path; + } + + +} diff --git a/oop/code/oop/src/main/java/com/scaler/lld/questions/Invoice.java b/oop/code/oop/src/main/java/com/scaler/lld/questions/Invoice.java index b7613e6..3f1a273 100644 --- a/oop/code/oop/src/main/java/com/scaler/lld/questions/Invoice.java +++ b/oop/code/oop/src/main/java/com/scaler/lld/questions/Invoice.java @@ -4,6 +4,9 @@ import lombok.AllArgsConstructor; import lombok.Getter; +import java.util.ArrayList; +import java.util.List; + @Getter @AllArgsConstructor public class Invoice { @@ -20,15 +23,27 @@ public Double getTotal() { return price * (1 + taxRate); } - public void printInvoice() { - System.out.println(quantity + "x " + book.getName() + " " + book.getPrice() + "$"); - System.out.println("Discount Rate: " + discountRate); - System.out.println("Tax Rate: " + taxRate); - System.out.println("Total: " + total); + public void printInvoice() + { + Printer> invoicePrinter = new Printer<>(getInvoiceDetails()); + invoicePrinter.Print(); + } + + public List getInvoiceDetails() + { + List invoiceDetails = new ArrayList<>(); + invoiceDetails.add(quantity + "x " + book.getName() + " " + book.getPrice() + "$"); + invoiceDetails.add("Discount Rate: " + discountRate); + invoiceDetails.add("Tax Rate: " + taxRate); + invoiceDetails.add("Total: " + total); + + return invoiceDetails; } - public void saveToFile(String filename) { - // Creates a file with given name and writes the invoice + public void saveToFile() + { + FileHandler handler = new FileHandler(); + handler.CreateFile(getInvoiceDetails()); } } diff --git a/oop/code/oop/src/main/java/com/scaler/lld/questions/Printer.java b/oop/code/oop/src/main/java/com/scaler/lld/questions/Printer.java new file mode 100644 index 0000000..12eead2 --- /dev/null +++ b/oop/code/oop/src/main/java/com/scaler/lld/questions/Printer.java @@ -0,0 +1,13 @@ +package com.scaler.lld.questions; + +public class Printer { + public Printer(T printingObject) { + this.printingObject = printingObject; + } + + private T printingObject; + public void Print() + { + System.out.println(this.printingObject); + } +}