Code Duplication    Length = 19-20 lines in 2 locations

opcua/common/xmlimporter.py 2 locations

@@ 255-274 (lines=20) @@
252
        else:
253
            return ua.Variant(obj.value, getattr(ua.VariantType, obj.valuetype))
254
255
    def add_variable_type(self, obj):
256
        node = self._get_node(obj)
257
        attrs = ua.VariableTypeAttributes()
258
        if obj.desc:
259
            attrs.Description = ua.LocalizedText(obj.desc)
260
        attrs.DisplayName = ua.LocalizedText(obj.displayname)
261
        attrs.DataType = self.to_nodeid(obj.datatype)
262
        if obj.value and len(obj.value) == 1:
263
            attrs.Value = obj.value[0]
264
        if obj.rank:
265
            attrs.ValueRank = obj.rank
266
        if obj.abstract:
267
            attrs.IsAbstract = obj.abstract
268
        if obj.dimensions:
269
            attrs.ArrayDimensions = obj.dimensions
270
        node.NodeAttributes = attrs
271
        res = self.server.iserver.isession.add_nodes([node])
272
        self._add_refs(obj)
273
        res[0].StatusCode.check()
274
        return res[0].AddedNodeId
275
276
    def add_method(self, obj):
277
        node = self._get_node(obj)
@@ 276-294 (lines=19) @@
273
        res[0].StatusCode.check()
274
        return res[0].AddedNodeId
275
276
    def add_method(self, obj):
277
        node = self._get_node(obj)
278
        attrs = ua.MethodAttributes()
279
        if obj.desc:
280
            attrs.Description = ua.LocalizedText(obj.desc)
281
        attrs.DisplayName = ua.LocalizedText(obj.displayname)
282
        if obj.accesslevel:
283
            attrs.AccessLevel = obj.accesslevel
284
        if obj.useraccesslevel:
285
            attrs.UserAccessLevel = obj.useraccesslevel
286
        if obj.minsample:
287
            attrs.MinimumSamplingInterval = obj.minsample
288
        if obj.dimensions:
289
            attrs.ArrayDimensions = obj.dimensions
290
        node.NodeAttributes = attrs
291
        res = self.server.iserver.isession.add_nodes([node])
292
        self._add_refs(obj)
293
        res[0].StatusCode.check()
294
        return res[0].AddedNodeId
295
296
    def add_reference_type(self, obj):
297
        node = self._get_node(obj)