summaryrefslogtreecommitdiff
path: root/oop/11-point-of-sale/src/main/java/lk/ac/pdn/ceit/pos/ItemManagerImpl.java
blob: ae325cd8e1cc86a5b11e575ea62b71b433f9edb1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package lk.ac.pdn.ceit.pos;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import lk.ac.pdn.ceit.pos.entities.Item;

public class ItemManagerImpl implements ItemManager {

    // For this demo. let's hold Items in memory.
    private Map<String, Item> items = new HashMap<>();

    public ItemManagerImpl() {
        // For demo purposes, let's create some items (to be availalbe in system db)
        createItem("F001", "Red Lentil (Dhal)", new BigDecimal("250.00"));
        createItem("F002", "Sugar", new BigDecimal("270.00"));
        createItem("S001", "Beauty Soap", new BigDecimal("165.00"));
    }

    @Override
    public Item createItem(String id, String name, BigDecimal unitPrice) {
        Item item = new Item(id, name, unitPrice);
        items.put(id, item);
        return item;
    }

    @Override
    public Item findById(String id) {
        return items.get(id);
    }

    @Override
    public List<Item> searchItems(String q) {
        List<Item> results = new ArrayList<>();

        for (Item item : items.values()) {
            if (item.getName().toLowerCase().contains(q.toLowerCase())) {
                results.add(item);
            }
        }

        return results;
    }
}