class JavaVersion {

    public boolean newerThan(JavaVersion version) {
        if (getMajor() > version.getMajor())
            return true;
        if (getMajor() < version.getMajor())
            return false;
        
        // majors are equal, so compare minors
        if (getMinor() > version.getMinor())
            return true;
        if (getMinor() < version.getMinor())
            return false;
        
        // minors are equal, so compare micros
        if (getMicro() > version.getMicro())
            return true;
        if (getMicro() < version.getMicro())
            return false;
        
        // micros are equal, so compare updates
        if (getUpdate() > version.getUpdate())
            return true;
        if (getUpdate() < version.getUpdate())
            return false;
        
        // updates are equal, so compare builds
        if (getBuild() > version.getBuild())
            return true;
        if (getBuild() < version.getBuild())
            return true;
        
        return false;
    }

    public  JavaVersion(String string);

}