public SkiPass createSkiPass(String cardType, Date activationDate,
            Date expirationDate, int numPassages) {

        if (cardType == null || activationDate == null
                || expirationDate == null) {
            return null;
        }

        SkiPassType skiPassType = SkiPassType.valueOf(cardType);

        switch (skiPassType) {
            case SEASON:
                return new SkiPass(skiPassIDCounter++, cardType,
                        activationDate, expirationDate);
            case HOURLY:
                return new SkiPass(skiPassIDCounter++, cardType,
                        activationDate, expirationDate);
            case LIMITED:
                return new LimitedSkiPass(skiPassIDCounter++, cardType,
                        activationDate, expirationDate, numPassages);
            default:
                return null;
        }
    }