FileVersion(final String version) {
            this.original = version;
            if (this.original == null) {
                this.major = null;
                this.minor = null;
                this.revision = null;
                this.type = null;
                this.build = null;
                return;
            }

            final String[] split = Pattern.compile("\\.|a|b|rc").split(this.original);
            this.major = Integer.parseInt(split[0]);
            this.minor = Integer.parseInt(split[1]);
            this.revision = Integer.parseInt(split[2]);
            final Matcher m = Pattern.compile("a|b|rc").matcher(this.original);
            this.type = (m.find() ? m.group(0) : null);
            this.build = (split.length >= 4 ? Integer.parseInt(split[3]) : null);
        }