package javaentities // type JavaVersion struct { // Component string // Type string // Name string // Major int // Minor int // Patch int // } // type JavaMetas struct { // JavaVersions []JavaMeta `json:"javaVersions"` // } // func (jm JavaMetas) FindSpecificJavaOsByMajor(version JavaVersion) (SpecificJavaVersion, error) { // for _, v := range jm.JavaVersions { // if version.Major == v.Version.Major { // jv, err := v.getOsJava() // if err != nil { // continue // } // return jv, nil // } // } // return SpecificJavaVersion{}, errors.New("cant find os url") // } // func (jm JavaMetas) FindSpecificJava(MajorVersion string) // type JavaMeta struct { // Version struct { // Major int `json:"major"` // Minor int `json:"minor"` // Patch int `json:"patch"` // } `json:"version"` // Name string // Specifics `json:"specifics"` // } // type SpecificJavaVersion struct { // Os string `json:"os"` // Arch string `json:"arch"` // URL string `json:"URL"` // Sha1 string `json:"SHA1"` // } // type Specifics []SpecificJavaVersion // func (s Specifics) getOsJava() (SpecificJavaVersion, error) { // for _, v := range s { // if v.Os == runtime.GOOS { // return v, nil // } // } // return SpecificJavaVersion{}, errors.New("not java for current os") // } // func (v *JavaVersion) CheckNotExists(launcherPath string) bool { // javaBinPath := path.Join(launcherPath, ".redist", "java", v.GetString()) // _, err := os.Stat(javaBinPath) // return err != nil // } // func (v *JavaVersion) GetString() string { // var stringBuilder strings.Builder // stringBuilder.WriteString(strconv.Itoa(v.Major)) // stringBuilder.WriteRune('.') // stringBuilder.WriteString(strconv.Itoa(v.Minor)) // stringBuilder.WriteRune('.') // stringBuilder.WriteString(strconv.Itoa(v.Patch)) // return stringBuilder.String() // }