@@ -110,7 +110,7 @@ def create_node_function(node_function, t)
110110 end
111111
112112 reference_value = SagittariusSchema.object_from_id(
113- parameter.value.reference_value.node_id
113+ parameter.value.reference_value.node_function_id
114114 )
115115
116116 if reference_value.nil?
@@ -124,6 +124,10 @@ def create_node_function(node_function, t)
124124 runtime_parameter: runtime_parameter,
125125 reference_value: ReferenceValue.create(
126126 node_function: reference_value,
127+ data_type_identifier: get_data_type_identifier(parameter.value.reference_value.data_type_identifier),
128+ depth: parameter.value.reference_value.depth,
129+ node: parameter.value.reference_value.node,
130+ scope: parameter.value.reference_value.scope,
127131 reference_paths: parameter.value.reference_value.reference_paths.map do |path|
128132 ReferencePath.create(
129133 path: path.path,
@@ -143,6 +147,28 @@ def create_node_function(node_function, t)
143147 node_parameters: params
144148 )
145149 end
150+
151+ private
152+
153+ def get_data_type_identifier(identifier)
154+ return DataTypeIdentifier.create(generic_key: identifier.generic_key) if identifier.generic_key.present?
155+
156+ if identifier.generic_type.present?
157+ data_type = SagittariusSchema.object_from_id(identifier.generic_type.data_type_id)
158+ mappers = identifier.generic_type.mappers.map do |mapper|
159+ GenericMapper.create(
160+ generic_mapper_id: mapper.generic_mapper_id,
161+ source: mapper.source,
162+ target: mapper.target
163+ )
164+ end
165+ return DataTypeIdentifier.create(generic_type: GenericType.create(data_type: data_type, mappers: mappers))
166+ end
167+
168+ return if identifier.data_type_id.blank?
169+
170+ DataTypeIdentifier.create(data_type: SagittariusSchema.object_from_id(identifier.data_type_id))
171+ end
146172 end
147173 end
148174 end
0 commit comments