Question

Write a program in Java using MVC (Model, View, Controller) architecture using either HashSet or TreeSet...

Write a program in Java using MVC (Model, View, Controller) architecture using either HashSet or TreeSet implementation where users can able to getItem, searchItem, removeItem, and addItem to the list.

0 0
Add a comment Improve this question Transcribed image text
Answer #1
//ItemController.java controller iterface

package controller.intf;

import model.ItemsDetails;

public interface ItemController {
    public ItemsDetails getItem(String name);
    public ItemsDetails searchItem(String name);
    public boolean removeItem(String name);
    public boolean addItem(String name, double price, String desc);
    public void printDetails();
}

//Model  ItemsDetails.java

package model;

public class ItemsDetails {
    private int id;
    private String name;
    private double price;
    private String desc;

    public ItemsDetails(int id, String name, double price, String desc) {
        this.id = id;
        this.name = name;
        this.price = price;
        this.desc = desc;
    }

    public ItemsDetails(String name) {
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        ItemsDetails that = (ItemsDetails) o;

        return name != null ? name.equals(that.name) : that.name == null;
    }

    @Override
    public int hashCode() {
        return name != null ? name.hashCode() : 0;
    }

    @Override
    public String toString() {
        return "ItemsDetails{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", price=" + price +
                ", desc='" + desc + '\'' +
                '}';
    }
}

// Controller ItemControllerImpl.java

package controller;

import controller.intf.ItemController;
import model.ItemsDetails;
import view.ItemView;

import java.util.Scanner;
import java.util.Set;


public class ItemControllerImpl implements ItemController {
    private final ItemView itemView;
    private final Set<ItemsDetails> itemsDetails;
    private int counter;

    public ItemControllerImpl(ItemView itemView, Set<ItemsDetails> itemsDetails) {
        this.itemView = itemView;
        this.itemsDetails = itemsDetails;
        this.counter = itemsDetails.size();
    }

    public ItemsDetails getItem(String name) {
        return searchItem(name);
    }

    public ItemsDetails searchItem(String name) {
        ItemsDetails item = new ItemsDetails(name);
        for (ItemsDetails itemsDetail : itemsDetails) {
            if(itemsDetail.equals(item)){
                return itemsDetail;
            }
        }
        return null;
    }

    public boolean removeItem(String name) {
        ItemsDetails item = new ItemsDetails(name);
        return itemsDetails.remove(item);
    }

    public boolean addItem(String name, double price, String desc) {
        ItemsDetails item = new ItemsDetails(counter++, name, price,desc);
        return itemsDetails.add(item);
    }

    public void printDetails() {
        for (ItemsDetails itemsDetail : itemsDetails) {
            itemView.printItemDetails(itemsDetail.getId(), itemsDetail.getName(), itemsDetail.getPrice(), itemsDetail.getDesc());
        }
    }
}

//View  ItemView.java

package view;

public class ItemView {
   public void printItemDetails(int id, String name, Double price, String desc){
       System.out.println("Item Id :"+id);
       System.out.println("Item Name :"+name);
       System.out.println("Item Price :"+price);
       System.out.println("Item Desc :"+desc);
   }

}

//Demo main class

import controller.ItemControllerImpl;
import controller.intf.ItemController;
import model.ItemsDetails;
import view.ItemView;

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;

public class MVCDemo {
    public static void main(String[] args) {
        ItemView itemView = new ItemView();
        Set<ItemsDetails> itemsDetails = new HashSet<ItemsDetails>();
        ItemController itemController = new ItemControllerImpl(itemView, itemsDetails);

        Scanner scan = new Scanner(System.in);
        while(true){
            System.out.println("================Menu========================");
            System.out.println("To Add new item, Enter 1");
            System.out.println("To Search item, Enter 2");
            System.out.println("To Get an Item, Enter 3");
            System.out.println("To Remove, Enter 4");
            System.out.println("To Print all item, Enter 5");
            System.out.println("To Exit, Enter 9");
            System.out.println("========================================");
            System.out.println();
            System.out.println("Enter your choice::");
            int choice = scan.nextInt();

            switch(choice){
                case 1: System.out.println("Please enter item details");
                    addItem(itemController);
                    break;
                case 2: System.out.println("Searching Item details");
                    ItemsDetails item = itemController.searchItem(getName());
                    if(null!=item){
                        System.out.println("Item found :"+item);
                    }else{
                        System.out.println("Item not found");
                    }
                    break;
                case 3: System.out.println("Fetching item details");
                    item =itemController.getItem(getName());
                    if(null!=item){
                        System.out.println("Item found :"+item);
                    }else{
                        System.out.println("Item not found");
                    }
                    break;
                case 4: System.out.println("Removing item details");
                    boolean flag = itemController.removeItem(getName());
                    if(flag){
                        System.out.println("Item removed successfully");
                    }else{
                        System.out.println("Item not found");
                    }
                    break;
                case 5: System.out.println("Printing item details");
                    itemController.printDetails();
                    break;
                case 9: System.out.println("Thanks you");
                    System.exit(0);
                    break;
                default: System.out.println("Incorrect input!!! Please re-enter your choice from menu");
            }
        }

    }
    private static void addItem(ItemController itemController){
        Scanner sc =new Scanner(System.in);
        System.out.println("Item name:");
        String name = sc.nextLine();
        System.out.println("Item price:");
        double price = sc.nextDouble();
        System.out.println("Item Details:");
        sc.next();
        String desc = sc.nextLine();
        boolean flag =itemController.addItem(name, price, desc);
        if (!flag){
            System.out.println("Item already present");
        }else{
            System.out.println("Item added successfully");
        }
    }
    private static String getName(){
        Scanner sc = new Scanner(System.in);
        System.out.println("Please enter item name");
        return sc.nextLine();
    }

}

// I have create a model ItemDetail which contains item details, An interface for all controller method and a view for ItemView.

MVCExample - Items Details.java - IntelliJ IDEA - 0 X File Edit View Navigate Code Analyze Refactor Build Run Tools VCS Windo

MVCExample - Items Details.java - IntelliJ IDEA - 0 х File Edit View Navigate Code Analyze Refactor Build Run Tools VCS Windo

MVCExample - Items Details.java - IntelliJ IDEA - 0 X File Edit View Navigate Code Analyze Refactor Build Run Tools VCS Windo

- 0 Х MVCDemo . 1: Project File Edit View Navigate Code Analyze Refactor Build Run Tools VCS Window Help MVCExample - ItemCon

Add a comment
Know the answer?
Add Answer to:
Write a program in Java using MVC (Model, View, Controller) architecture using either HashSet or TreeSet...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT