Code Duplication    Length = 17-19 lines in 2 locations

opcua/common/xmlimporter.py 2 locations

@@ 339-357 (lines=19) @@
336
        res[0].StatusCode.check()
337
        return res[0].AddedNodeId
338
339
    def add_method(self, obj):
340
        node = self._get_node(obj)
341
        attrs = ua.MethodAttributes()
342
        if obj.desc:
343
            attrs.Description = ua.LocalizedText(obj.desc)
344
        attrs.DisplayName = ua.LocalizedText(obj.displayname)
345
        if obj.accesslevel:
346
            attrs.AccessLevel = obj.accesslevel
347
        if obj.useraccesslevel:
348
            attrs.UserAccessLevel = obj.useraccesslevel
349
        if obj.minsample:
350
            attrs.MinimumSamplingInterval = obj.minsample
351
        if obj.dimensions:
352
            attrs.ArrayDimensions = obj.dimensions
353
        node.NodeAttributes = attrs
354
        res = self._add_node(node)
355
        self._add_refs(obj)
356
        res[0].StatusCode.check()
357
        return res[0].AddedNodeId
358
359
    def add_reference_type(self, obj):
360
        node = self._get_node(obj)
@@ 359-375 (lines=17) @@
356
        res[0].StatusCode.check()
357
        return res[0].AddedNodeId
358
359
    def add_reference_type(self, obj):
360
        node = self._get_node(obj)
361
        attrs = ua.ReferenceTypeAttributes()
362
        if obj.desc:
363
            attrs.Description = ua.LocalizedText(obj.desc)
364
        attrs.DisplayName = ua.LocalizedText(obj.displayname)
365
        if obj. inversename:
366
            attrs.InverseName = ua.LocalizedText(obj.inversename)
367
        if obj.abstract:
368
            attrs.IsAbstract = obj.abstract
369
        if obj.symmetric:
370
            attrs.Symmetric = obj.symmetric
371
        node.NodeAttributes = attrs
372
        res = self._add_node(node)
373
        self._add_refs(obj)
374
        res[0].StatusCode.check()
375
        return res[0].AddedNodeId
376
377
    def add_datatype(self, obj):
378
        node = self._get_node(obj)