in domain/model.go [22:63]
func NewModel(model *api.Model, p *Project) *Model {
m := &Model{
Model: model,
project: p,
featureViewMap: make(map[string]FeatureView),
featureEntityMap: make(map[string]*FeatureEntity),
featureNamesMap: make(map[string][]string),
aliasNamesMap: make(map[string]map[string]string),
featureEntityJoinIdMap: make(map[string]map[string]FeatureView),
}
for _, feature := range m.Features {
featureView := m.project.GetFeatureView(feature.FeatureViewName)
featureEntity := m.project.GetFeatureEntity(featureView.GetFeatureEntityName())
m.featureViewMap[feature.FeatureViewName] = featureView
m.featureEntityMap[featureView.GetFeatureEntityName()] = featureEntity
m.featureNamesMap[feature.FeatureViewName] = append(m.featureNamesMap[feature.FeatureViewName], featureView.Offline2Online(feature.Name))
if feature.AliasName != "" {
aliasMap, ok := m.aliasNamesMap[feature.FeatureViewName]
if !ok {
aliasMap = make(map[string]string)
}
aliasMap[feature.Name] = feature.AliasName
m.aliasNamesMap[feature.FeatureViewName] = aliasMap
}
featureViewMap, ok := m.featureEntityJoinIdMap[featureEntity.FeatureEntityJoinid]
if !ok {
featureViewMap = make(map[string]FeatureView)
}
featureViewMap[feature.FeatureViewName] = featureView
m.featureEntityJoinIdMap[featureEntity.FeatureEntityJoinid] = featureViewMap
}
for joinid := range m.featureEntityJoinIdMap {
m.featureEntityJoinIdList = append(m.featureEntityJoinIdList, joinid)
}
//fmt.Println(m)
return m
}