<file_sep>package ac.za.cput.streetstock.repository.payments;

public interface PaypalRepository
{
}
<file_sep>package ac.za.cput.streetstock.domain.transaction;

public class Buy
{
}
<file_sep>package ac.za.cput.streetstock.repository.user;

public interface CustomerRepository
{
}
<file_sep>package ac.za.cput.streetstock.factory.device;

public class LaptopFactory
{
}
<file_sep>package ac.za.cput.streetstock;

import org.springframework.boot.SpringApplication;

public class StreetStock
{
    public static void main(String[] args)
    {
        SpringApplication.run(StreetStock.class, args);
    }
}
<file_sep>package ac.za.cput.streetstock.domain.device;

public class Linux extends Laptop
{
    private String xfce;
    private String Gnome;
    private String kde;
}
<file_sep>package ac.za.cput.streetstock.repository.transaction;

public interface BuyRepository
{
}
<file_sep>package ac.za.cput.streetstock.repository.login;

public interface LoginDetailsRepository
{
}
<file_sep>package ac.za.cput.streetstock.repository.user;

public interface AdministratorRepository
{
}
<file_sep>package ac.za.cput.streetstock.domain.product;

public class Update
{
}
<file_sep>package ac.za.cput.streetstock.repository.product;

public interface StockRepository
{
}
<file_sep>package ac.za.cput.streetstock.repository.System;

public interface WindowsRepository
{
}
<file_sep>package ac.za.cput.streetstock.domain.user;

public class Customer
{
    private String userName;
    private String phoneNumber;
}
<file_sep>package ac.za.cput.streetstock.repository.System;

public interface LinuxRepository
{
}
<file_sep>package ac.za.cput.streetstock.domain.payments;

public class PaymentStatus
{
    private String paid;
    private String pending;
}
<file_sep>package ac.za.cput.streetstock.domain.device;

public class PC
{
}
<file_sep>package ac.za.cput.streetstock.domain.user;

public class Distributor
{
    private String userName;
    private String phoneNumber;
}
<file_sep>package ac.za.cput.streetstock.repository.payments;

public interface PaymentStatusRepository
{
}
<file_sep>package ac.za.cput.streetstock.repository.device;

public interface PhonesRepository
{
}
<file_sep>package ac.za.cput.streetstock.factory.device;

import ac.za.cput.streetstock.domain.device.PC;
import ac.za.cput.streetstock.util.GenerateUserName;

public class PCFactory
{
    public static PC buildPC(String pcName)
    {
        return new PC.Builder().pcID(GenerateUserName.generateUserName())
                .pcName(pcName)
                .build();
    }
}
<file_sep>package ac.za.cput.streetstock.Service;

public interface PCService
{
}
<file_sep>package ac.za.cput.streetstock.Service;

public interface ConsolesService
{
}
<file_sep>package ac.za.cput.streetstock.repository.device;

public interface ConsolesInterface
{
}
<file_sep>package ac.za.cput.streetstock.repository.impl;

import ac.za.cput.streetstock.domain.device.Laptop;
import ac.za.cput.streetstock.domain.device.PC;
import ac.za.cput.streetstock.repository.device.PCRepository;

import java.util.HashSet;
import java.util.Set;

public class PCRepositoryImpl implements PCRepository
{
    private static PCRepositoryImpl repository = null;
    private Set<PC> pcs;

    private PCRepositoryImpl()
    {
        this.pcs = new HashSet<>();
    }

    private PC findPC(String pcID)
    {
        return this.pcs.stream()
                .filter(laptop -> laptop.getPcID().trim().equals(pcID))
                .findAny()
                .orElse(null);
    }

    public static PCRepositoryImpl getRepository()
    {
        if (repository == null) repository = new PCRepositoryImpl();
        return repository;
    }

    public Laptop create(Laptop pc)
    {
        this.pcs.add(pc);
        return pc;
    }

    public PC read(final String pcID)
    {
        PC pc = findPC(pcID);
        return pc;
    }

    public void delete(String pcID)
    {
        PC pc = findPC(pcID);
        if (pc != null) this.pcs.remove(pc);
    }

    public PC update(PC pc)
    {
        PC toDelete = findPC(pc.getPcID());
        if(toDelete != null)
        {
            this.pcs.remove(toDelete);
            return create(pc);
        }
        return null;
    }

    public Set<PC> getAll()
    {
        return this.pcs;
    }
}<file_sep>package ac.za.cput.streetstock.repository.product;

public interface RemoveRepository
{
}
<file_sep>package ac.za.cput.streetstock.domain.System;

import ac.za.cput.streetstock.domain.device.Laptop;

public class Linux extends Laptop
{
    private String xfce;
    private String Gnome;
    private String kde;
}
<file_sep>package ac.za.cput.streetstock.repository.transaction;

public interface SellRepository
{
}
<file_sep>package ac.za.cput.streetstock.domain.System;

import ac.za.cput.streetstock.domain.device.Laptop;

public class Windows extends Laptop
{
    private String OSVersion;

    private Windows(){}

    private Windows(Builder builder)
    {
        this.OSVersion = builder.OSVersion;
    }
    public String getOSVersion()
    {
        return OSVersion;
    }
    public static class Builder
    {
        private String OSVersion;

        public Builder OSVersion(String OSVersion)
        {
            this.OSVersion = OSVersion;
            return this;
        }
    }
}<file_sep>package ac.za.cput.streetstock.factory.product;

import ac.za.cput.streetstock.domain.product.Products;
import ac.za.cput.streetstock.util.UserName;

public class ProductsFactory
{
    public static Products getProduct(String productName)
    {
        return new Products.Builder().model(UserName.generateUserName())
                .productName(productName)
                .build();
    }
}<file_sep>package ac.za.cput.streetstock.factory.transaction;

public class SaleStatusFactory
{
}
<file_sep>package ac.za.cput.streetstock.factory.payments;

public class PaymentStatusFactory
{
}
<file_sep>package ac.za.cput.streetstock.factory.user;

public class DistributorFactory
{
    private String userName;
    private String phoneNumber;
}
<file_sep>package ac.za.cput.streetstock.domain;

public class PC
{
}
<file_sep>package ac.za.cput.streetstock.factory.product;

public class StockFactory
{
}
<file_sep>package ac.za.cput.streetstock.repository.product;

public interface UpdateRepository
{
}
<file_sep>package ac.za.cput.streetstock.factory.System;

public class IOSFactory
{
    private String S;
    private String Plus;
    private String normal;

    private IOSFactory()
    {

    }
}
<file_sep>package ac.za.cput.streetstock.factory.device;

public class ConsolesFactory
{
}
<file_sep>package ac.za.cput.streetstock.domain.device;

public class Android extends Phones
{
    private String AndroidVer;
}<file_sep>package ac.za.cput.streetstock.domain.device;

public class Laptop
{

}
<file_sep>package ac.za.cput.streetstock.factory.user;

public class AdministratorFactory
{
}
<file_sep>package ac.za.cput.streetstock.factory.payments;

public class PaypalFactory
{
}
<file_sep>package ac.za.cput.streetstock.factory.transaction;

public class SellFactory
{
}
<file_sep>package ac.za.cput.streetstock.domain.product;

public class Remove
{

}
<file_sep>package ac.za.cput.streetstock.Service;

public interface LaptopService
{
}
