private void validate()
    {
        if (majorVersion()<0 || year()<0 || month()<0 || minorVersion()<0)
            throw new IllegalArgumentException("No components of a version" +
                    " number may be negative.");
        if (year() > 99)
            throw new IllegalArgumentException("The second number in a" +
                    " version number must be a year value from 0 to 99.");
        if (month() < 1 || month() > 12)
            throw new IllegalArgumentException("The third number in a" +
                    " version number must be a month value from 1 to 12.");
        if (letterSuffix == null)
            throw new IllegalArgumentException("The letter suffix of a" +
                    " version number may not be null. If it is meant to be" +
                    " blank, use an empty string for this value.");
        if (!letterSuffix.matches("[a-zA-Z_\\-]*"))
            throw new IllegalArgumentException("The letter suffix of a" +
                    " version number must be either blank or composed only" +
                    " of letters, numbers, hyphens, and underscores.");
    }