Code Duplication    Length = 17-19 lines in 2 locations

opcua/common/xmlimporter.py 2 locations

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