android13/development/tools/repo_diff/service/repodiff/interactors/manifest.go

38 lines
853 B
Go

package interactors
import (
cst "repodiff/constants"
ent "repodiff/entities"
)
func ProjectNamesToType(manifests *ent.ManifestFileGroup) TypeMap {
commonProjects := extractProjectNames(manifests.Common)
distinctProjects := SetSubtract(
SetUnion(
extractProjectNames(manifests.Downstream),
extractProjectNames(manifests.Upstream),
),
commonProjects,
)
return toMap(commonProjects, distinctProjects)
}
func extractProjectNames(m ent.ManifestFile) []string {
projects := make([]string, len(m.Projects))
for i, p := range m.Projects {
projects[i] = p.Name
}
return projects
}
func toMap(common, distinct []string) TypeMap {
ret := make(map[string]cst.ProjectType, len(common)+len(distinct))
for _, k := range common {
ret[k] = cst.Global
}
for _, k := range distinct {
ret[k] = cst.DifferentialSpecific
}
return ret
}