The following classes are a solution to Assignment 3.

In order to emphasise the use of interfaces, the two kinds of Item were implemented independently, by two different people (Ontario: Bernat; Alberta: Malton).  The class Catalogue is a helper class for AlbertaItems. It would not, of course, be needed in your solution.  Similarly the class Util is a helper for Ontario items.
 

Client Code

ShoppingBasket.java
Main.java
ShoppingBasketImpl.java

Interfaces

ItemFactory.java
Item.java

Ontario Items

OntarioItem.java
Util.java
OntarioItemFactory.java

Alberta Items

AlbertaItem.java
AlbertaItemFactory.java
Catalogue.java