class BackwardsCompatibleVersion implements Version {

    @Override
    public boolean greaterOrEqualThan(Version version) {
        String[] split = version.name().split(DOT_REGEX);
        if (split.length < 1 || split.length > 3) {
            throw new IllegalArgumentException("Version class format is not compliant");
        }

        if (split.length == 3) {
            return parseInt(split[0]) == this.major() &&
                    parseInt(split[1]) == this.minor() &&
                    parseInt(split[2]) <= this.patch();
        }

        if (split.length == 2) {
            return parseInt(split[0]) == this.major() &&
                    parseInt(split[1]) <= this.minor();
        }

        return parseInt(split[0]) <= this.major();
    }

    public  BackwardsCompatibleVersion(String name);

}