Code Duplication    Length = 17-18 lines in 2 locations

opcua/common/xmlimporter.py 2 locations

@@ 116-133 (lines=18) @@
113
        self.server.add_nodes([node])
114
        self._add_refs(obj)
115
116
    def add_variable_type(self, obj):
117
        node = self._get_node(obj)
118
        attrs = ua.VariableTypeAttributes()
119
        if obj.desc:
120
            attrs.Description = ua.LocalizedText(obj.desc)
121
        attrs.DisplayName = ua.LocalizedText(obj.displayname)
122
        attrs.DataType = self.to_data_type(obj.datatype)
123
        if obj.value and len(obj.value) == 1:
124
            attrs.Value = obj.value[0]
125
        if obj.rank:
126
            attrs.ValueRank = obj.rank
127
        if obj.abstract:
128
            attrs.IsAbstract = obj.abstract
129
        if obj.dimensions:
130
            attrs.ArrayDimensions = obj.dimensions
131
        node.NodeAttributes = attrs
132
        self.server.add_nodes([node])
133
        self._add_refs(obj)
134
135
    def add_method(self, obj):
136
        node = self._get_node(obj)
@@ 135-151 (lines=17) @@
132
        self.server.add_nodes([node])
133
        self._add_refs(obj)
134
135
    def add_method(self, obj):
136
        node = self._get_node(obj)
137
        attrs = ua.MethodAttributes()
138
        if obj.desc:
139
            attrs.Description = ua.LocalizedText(obj.desc)
140
        attrs.DisplayName = ua.LocalizedText(obj.displayname)
141
        if obj.accesslevel:
142
            attrs.AccessLevel = obj.accesslevel
143
        if obj.useraccesslevel:
144
            attrs.UserAccessLevel = obj.useraccesslevel
145
        if obj.minsample:
146
            attrs.MinimumSamplingInterval = obj.minsample
147
        if obj.dimensions:
148
            attrs.ArrayDimensions = obj.dimensions
149
        node.NodeAttributes = attrs
150
        self.server.add_nodes([node])
151
        self._add_refs(obj)
152
153
    def add_reference(self, obj):
154
        node = self._get_node(obj)