github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/istructsmem/internal/descr/impl_data.go (about)

     1  /*
     2   * Copyright (c) 2021-present Sigma-Soft, Ltd.
     3   * @author: Nikolay Nikitin
     4   */
     5  
     6  package descr
     7  
     8  import "github.com/voedger/voedger/pkg/appdef"
     9  
    10  func newData() *Data {
    11  	return &Data{
    12  		Constraints: make(map[string]any, 0),
    13  	}
    14  }
    15  
    16  func (d *Data) read(data appdef.IData) {
    17  	d.Type.read(data)
    18  	if data.Ancestor() != nil {
    19  		q := data.Ancestor().QName()
    20  		d.Ancestor = &q
    21  	} else {
    22  		// notest: only system data types have no ancestor
    23  		k := data.DataKind()
    24  		d.DataKind = &k
    25  	}
    26  	for k, c := range data.Constraints(false) {
    27  		d.Constraints[k.TrimString()] = c.Value()
    28  	}
    29  }