class SystemVersion extends Version  {

    public SystemVersion() {
    }

    public SystemVersion(String version) {
        this.setVersion(version);
    }

    private FrameworkVersion frameworkVersion = new FrameworkVersion();

    private List<Dependency> dependencies = new ArrayList<>();

    public FrameworkVersion getFrameworkVersion() {
        return frameworkVersion;
    }

    public void setFrameworkVersion(FrameworkVersion frameworkVersion) {
        this.frameworkVersion = frameworkVersion;
    }

    public List<Dependency> getDependencies() {
        return dependencies;
    }

    public void setDependencies(List<Dependency> dependencies) {
        this.dependencies = dependencies;
        initDepCache();
    }

    private Map<String, Dependency> depCache;

    protected String getDepKey(String groupId, String artifactId) {
        return StringUtils.concat(groupId, "/", artifactId);
    }

    protected void initDepCache() {<FILL_FUNCTION_BODY>}

    public Dependency getDependency(String groupId, String artifactId) {
        if (depCache == null) {
            initDepCache();
        }
        return depCache.get(getDepKey(groupId, artifactId));
    }

    public static class FrameworkVersion extends Version {
        public FrameworkVersion() {
            setName("hsweb framework");
            setComment("企业后台管理系统基础框架");
            setWebsite("http://www.hsweb.io");
            setComment("");
            setVersion(4, 0, 0, true);
        }
    }


    public interface Property {
        /**
         * @see SystemVersion#name
         */
        String name            = "name";
        /**
         * @see SystemVersion#comment
         */
        String comment         = "comment";
        /**
         * @see SystemVersion#website
         */
        String website         = "website";
        /**
         * @see SystemVersion#majorVersion
         */
        String majorVersion    = "majorVersion";
        /**
         * @see SystemVersion#minorVersion
         */
        String minorVersion    = "minorVersion";
        /**
         * @see SystemVersion#revisionVersion
         */
        String revisionVersion = "revisionVersion";
        /**
         * @see SystemVersion#snapshot
         */
        String snapshot        = "snapshot";

        /**
         * @see SystemVersion#frameworkVersion
         */
        String frameworkVersion = "frameworkVersion";

        /**
         * @see SystemVersion#dependencies
         */
        String dependencies = "dependencies";
    }


}

        depCache = new HashMap<>();
        dependencies.forEach(dependency -> depCache.put(getDepKey(dependency.groupId, dependency.artifactId), dependency));
    
<methods>public non-sealed void <init>() ,public int compareTo(org.hswebframework.web.starter.initialize.Version) ,public java.lang.String getComment() ,public int getMajorVersion() ,public int getMinorVersion() ,public java.lang.String getName() ,public int getRevisionVersion() ,public java.lang.String getWebsite() ,public boolean isSnapshot() ,public void setComment(java.lang.String) ,public void setMajorVersion(int) ,public void setMinorVersion(int) ,public void setName(java.lang.String) ,public void setRevisionVersion(int) ,public void setSnapshot(boolean) ,public void setVersion(int, int, int, boolean) ,public void setVersion(java.lang.String) ,public void setWebsite(java.lang.String) ,public java.lang.String toString() ,public java.lang.String versionToString() <variables>protected java.lang.String comment,protected int majorVersion,protected int minorVersion,protected java.lang.String name,protected int revisionVersion,protected boolean snapshot,protected java.lang.String website