Code Duplication    Length = 17-19 lines in 2 locations

opcua/common/xmlimporter.py 2 locations

@@ 297-315 (lines=19) @@
294
        res[0].StatusCode.check()
295
        return res[0].AddedNodeId
296
297
    def add_method(self, obj):
298
        node = self._get_node(obj)
299
        attrs = ua.MethodAttributes()
300
        if obj.desc:
301
            attrs.Description = ua.LocalizedText(obj.desc)
302
        attrs.DisplayName = ua.LocalizedText(obj.displayname)
303
        if obj.accesslevel:
304
            attrs.AccessLevel = obj.accesslevel
305
        if obj.useraccesslevel:
306
            attrs.UserAccessLevel = obj.useraccesslevel
307
        if obj.minsample:
308
            attrs.MinimumSamplingInterval = obj.minsample
309
        if obj.dimensions:
310
            attrs.ArrayDimensions = obj.dimensions
311
        node.NodeAttributes = attrs
312
        res = self._add_node(node)
313
        self._add_refs(obj)
314
        res[0].StatusCode.check()
315
        return res[0].AddedNodeId
316
317
    def add_reference_type(self, obj):
318
        node = self._get_node(obj)
@@ 317-333 (lines=17) @@
314
        res[0].StatusCode.check()
315
        return res[0].AddedNodeId
316
317
    def add_reference_type(self, obj):
318
        node = self._get_node(obj)
319
        attrs = ua.ReferenceTypeAttributes()
320
        if obj.desc:
321
            attrs.Description = ua.LocalizedText(obj.desc)
322
        attrs.DisplayName = ua.LocalizedText(obj.displayname)
323
        if obj. inversename:
324
            attrs.InverseName = ua.LocalizedText(obj.inversename)
325
        if obj.abstract:
326
            attrs.IsAbstract = obj.abstract
327
        if obj.symmetric:
328
            attrs.Symmetric = obj.symmetric
329
        node.NodeAttributes = attrs
330
        res = self._add_node(node)
331
        self._add_refs(obj)
332
        res[0].StatusCode.check()
333
        return res[0].AddedNodeId
334
335
    def add_datatype(self, obj):
336
        node = self._get_node(obj)