private final DiscountStrategy allocateDiscount(FakePersistantDiscount fakeDiscount) {
	if (fakeDiscount == null) {
	    throw new IllegalArgumentException();
	}

	DiscountStrategy discount = null;

	switch (fakeDiscount.getDiscType()) {
	    case ByPercentage:
		discount = new DiscountByPercentage(fakeDiscount.getDescription(), fakeDiscount.getDiscDouble());
		break;
	    case ByFlatRate:
		discount = new DiscountByFlatRate(fakeDiscount.getDescription(), fakeDiscount.getDiscDouble());
		break;
	    case ByQuantity:
		discount = new DiscountByQuantity(fakeDiscount.getDescription(), fakeDiscount.getDiscNumber(), fakeDiscount.getDiscDouble());
		break;
	    default:
		discount = new NoDiscount(fakeDiscount.getDescription());
		break;
	}

	fakeDiscount.setDiscount(discount);
	
	return discount;
    }