//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

package cfg;


import "errors"

type AiUeBlackboard struct {
    Id int32
    NodeName string
    FlowAbortMode int32
    NotifyObserver int32
    BlackboardKey string
    KeyQuery interface{}
}

const TypeId_AiUeBlackboard = -315297507

func (*AiUeBlackboard) GetTypeId() int32 {
    return -315297507
}

func NewAiUeBlackboard(_buf map[string]interface{}) (_v *AiUeBlackboard, err error) {
    _v = &AiUeBlackboard{}
    { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
    { var _ok_ bool; if _v.NodeName, _ok_ = _buf["node_name"].(string); !_ok_ { err = errors.New("node_name error"); return } }
    { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["flow_abort_mode"].(float64); !_ok_ { err = errors.New("flow_abort_mode error"); return }; _v.FlowAbortMode = int32(_tempNum_) }
    { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["notify_observer"].(float64); !_ok_ { err = errors.New("notify_observer error"); return }; _v.NotifyObserver = int32(_tempNum_) }
    { var _ok_ bool; if _v.BlackboardKey, _ok_ = _buf["blackboard_key"].(string); !_ok_ { err = errors.New("blackboard_key error"); return } }
    { var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _buf["key_query"].(map[string]interface{}); !_ok_ { err = errors.New("key_query error"); return }; if _v.KeyQuery, err = NewAiKeyQueryOperator(_x_); err != nil { return } }
    return
}