Code Duplication    Length = 16-18 lines in 2 locations

opcua/common/xmlimporter.py 2 locations

@@ 219-236 (lines=18) @@
216
        self._add_refs(obj)
217
        return res[0].AddedNodeId
218
219
    def add_method(self, obj):
220
        node = self._get_node(obj)
221
        attrs = ua.MethodAttributes()
222
        if obj.desc:
223
            attrs.Description = ua.LocalizedText(obj.desc)
224
        attrs.DisplayName = ua.LocalizedText(obj.displayname)
225
        if obj.accesslevel:
226
            attrs.AccessLevel = obj.accesslevel
227
        if obj.useraccesslevel:
228
            attrs.UserAccessLevel = obj.useraccesslevel
229
        if obj.minsample:
230
            attrs.MinimumSamplingInterval = obj.minsample
231
        if obj.dimensions:
232
            attrs.ArrayDimensions = obj.dimensions
233
        node.NodeAttributes = attrs
234
        res = self.server.add_nodes([node])
235
        self._add_refs(obj)
236
        return res[0].AddedNodeId
237
238
    def add_reference(self, obj):
239
        node = self._get_node(obj)
@@ 238-253 (lines=16) @@
235
        self._add_refs(obj)
236
        return res[0].AddedNodeId
237
238
    def add_reference(self, obj):
239
        node = self._get_node(obj)
240
        attrs = ua.ReferenceTypeAttributes()
241
        if obj.desc:
242
            attrs.Description = ua.LocalizedText(obj.desc)
243
        attrs.DisplayName = ua.LocalizedText(obj.displayname)
244
        if obj. inversename:
245
            attrs.InverseName = ua.LocalizedText(obj.inversename)
246
        if obj.abstract:
247
            attrs.IsAbstract = obj.abstract
248
        if obj.symmetric:
249
            attrs.Symmetric = obj.symmetric
250
        node.NodeAttributes = attrs
251
        res = self.server.add_nodes([node])
252
        self._add_refs(obj)
253
        return res[0].AddedNodeId
254
255
    def add_datatype(self, obj):
256
        node = self._get_node(obj)