Code Duplication    Length = 11-12 lines in 3 locations

opcua/common/xmlimporter.py 3 locations

@@ 207-218 (lines=12) @@
204
        attrs.DisplayName = ua.LocalizedText(obj.displayname)
205
        if obj.accesslevel:
206
            attrs.AccessLevel = obj.accesslevel
207
        if obj.useraccesslevel:
208
            attrs.UserAccessLevel = obj.useraccesslevel
209
        if obj.minsample:
210
            attrs.MinimumSamplingInterval = obj.minsample
211
        if obj.dimensions:
212
            attrs.ArrayDimensions = obj.dimensions
213
        node.NodeAttributes = attrs
214
        res = self.server.add_nodes([node])
215
        self._add_refs(obj)
216
        return res[0].AddedNodeId
217
218
    def add_reference(self, obj):
219
        node = self._get_node(obj)
220
        attrs = ua.ReferenceTypeAttributes()
221
        if obj.desc:
@@ 85-95 (lines=11) @@
82
        elif "=" in nodeid:
83
            return ua.NodeId.from_string(nodeid)
84
        elif hasattr(ua.ObjectIds, nodeid):
85
            return ua.NodeId(getattr(ua.ObjectIds, nodeid))
86
        else:
87
            if nodeid in self.parser.aliases:
88
                nodeid = self.parser.aliases[nodeid]
89
            else:
90
                nodeid = "i={}".format(getattr(ua.ObjectIds, nodeid))
91
            return ua.NodeId.from_string(nodeid)
92
93
    def add_object(self, obj):
94
        node = self._get_node(obj)
95
        attrs = ua.ObjectAttributes()
96
        if obj.desc:
97
            attrs.Description = ua.LocalizedText(obj.desc)
98
        attrs.DisplayName = ua.LocalizedText(obj.displayname)
@@ 73-83 (lines=11) @@
70
        node.NodeClass = getattr(ua.NodeClass, obj.nodetype[2:])
71
        if obj.parent:
72
            node.ParentNodeId = ua.NodeId.from_string(obj.parent)
73
        if obj.parentlink:
74
            node.ReferenceTypeId = self.to_nodeid(obj.parentlink)
75
        if obj.typedef:
76
            node.TypeDefinition = ua.NodeId.from_string(obj.typedef)
77
        return node
78
79
    def to_nodeid(self, nodeid):
80
        if not nodeid:
81
            return ua.NodeId(ua.ObjectIds.String)
82
        elif "=" in nodeid:
83
            return ua.NodeId.from_string(nodeid)
84
        elif hasattr(ua.ObjectIds, nodeid):
85
            return ua.NodeId(getattr(ua.ObjectIds, nodeid))
86
        else: