Code Duplication    Length = 12-13 lines in 3 locations

opcua/common/xmlimporter.py 3 locations

@@ 335-347 (lines=13) @@
332
        if obj.minsample:
333
            attrs.MinimumSamplingInterval = obj.minsample
334
        if obj.dimensions:
335
            attrs.ArrayDimensions = obj.dimensions
336
        node.NodeAttributes = attrs
337
        res = self._add_node(node)
338
        self._add_refs(obj)
339
        res[0].StatusCode.check()
340
        return res[0].AddedNodeId
341
342
    def add_reference_type(self, obj):
343
        node = self._get_node(obj)
344
        attrs = ua.ReferenceTypeAttributes()
345
        if obj.desc:
346
            attrs.Description = ua.LocalizedText(obj.desc)
347
        attrs.DisplayName = ua.LocalizedText(obj.displayname)
348
        if obj. inversename:
349
            attrs.InverseName = ua.LocalizedText(obj.inversename)
350
        if obj.abstract:
@@ 162-173 (lines=12) @@
159
        node = self._get_node(obj)
160
        attrs = ua.ObjectAttributes()
161
        if obj.desc:
162
            attrs.Description = ua.LocalizedText(obj.desc)
163
        attrs.DisplayName = ua.LocalizedText(obj.displayname)
164
        attrs.EventNotifier = obj.eventnotifier
165
        node.NodeAttributes = attrs
166
        res = self._add_node(node)
167
        self._add_refs(obj)
168
        res[0].StatusCode.check()
169
        return res[0].AddedNodeId
170
171
    def add_object_type(self, obj):
172
        node = self._get_node(obj)
173
        attrs = ua.ObjectTypeAttributes()
174
        if obj.desc:
175
            attrs.Description = ua.LocalizedText(obj.desc)
176
        attrs.DisplayName = ua.LocalizedText(obj.displayname)
@@ 149-160 (lines=12) @@
146
        elif not nodeid:
147
            return ua.NodeId(ua.ObjectIds.String)
148
        elif "=" in nodeid:
149
            return ua.NodeId.from_string(nodeid)
150
        elif hasattr(ua.ObjectIds, nodeid):
151
            return ua.NodeId(getattr(ua.ObjectIds, nodeid))
152
        else:
153
            if nodeid in self.aliases:
154
                return self.aliases[nodeid]
155
            else:
156
                return ua.NodeId(getattr(ua.ObjectIds, nodeid))
157
158
    def add_object(self, obj):
159
        node = self._get_node(obj)
160
        attrs = ua.ObjectAttributes()
161
        if obj.desc:
162
            attrs.Description = ua.LocalizedText(obj.desc)
163
        attrs.DisplayName = ua.LocalizedText(obj.displayname)