class Dependency extends Version {
        protected String groupId;
        protected String artifactId;
        protected String author;

        public String getGroupId() {
            return groupId;
        }

        public void setGroupId(String groupId) {
            this.groupId = groupId;
        }

        public String getArtifactId() {
            return artifactId;
        }

        public void setArtifactId(String artifactId) {
            this.artifactId = artifactId;
        }

        public String getAuthor() {
            return author;
        }

        public void setAuthor(String author) {
            this.author = author;
        }

        public static Dependency fromMap(Map<String, Object> map) {<FILL_FUNCTION_BODY>}

        public boolean isSameDependency(Dependency dependency) {
            return isSameDependency(dependency.getGroupId(), dependency.getArtifactId());
        }

        public boolean isSameDependency(String groupId, String artifactId) {
            return groupId.equals(this.getGroupId()) && artifactId.equals(this.getArtifactId());
        }

        @Override
        public String toString() {
            return JSON.toJSONString(this, SerializerFeature.PrettyFormat);
        }
    }

            Dependency dependency = new Dependency();
            dependency.setGroupId((String) map.get("groupId"));
            dependency.setArtifactId((String) map.get("artifactId"));
            dependency.setName((String) map.getOrDefault(SystemVersion.Property.name, dependency.getArtifactId()));
            dependency.setVersion((String) map.get("version"));
            dependency.setWebsite((String) map.get(SystemVersion.Property.website));
            dependency.setAuthor((String) map.get("author"));
            return 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