@@ -41,8 +41,9 @@ function `f` are removed and the dimension of the set `s` is updated if
41
41
needed (e.g. when `f` is a `VectorOfVariables` with `vi` being one of the
42
42
variables).
43
43
"""
44
- remove_variable (f, s, vi:: VI ) = remove_variable (f, vi), s
45
- function remove_variable (f:: MOI.VectorOfVariables , s, vi:: VI )
44
+ remove_variable (f, s, vi:: MOI.VariableIndex ) = remove_variable (f, vi), s
45
+
46
+ function remove_variable (f:: MOI.VectorOfVariables , s, vi:: MOI.VariableIndex )
46
47
g = remove_variable (f, vi)
47
48
if length (g. variables) != length (f. variables)
48
49
t = MOI. update_dimension (s, length (g. variables))
@@ -139,14 +140,30 @@ function MOI.set(model::AbstractModel, ::MOI.Name, name::String)
139
140
end
140
141
MOI. get (model:: AbstractModel , :: MOI.Name ) = model. name
141
142
142
- MOI. supports (:: AbstractModel , :: MOI.VariableName , vi:: Type{VI} ) = true
143
- function MOI. set (model:: AbstractModel , :: MOI.VariableName , vi:: VI , name:: String )
143
+ function MOI. supports (
144
+ :: AbstractModel ,
145
+ :: MOI.VariableName ,
146
+ :: Type{MOI.VariableIndex} ,
147
+ )
148
+ return true
149
+ end
150
+
151
+ function MOI. set (
152
+ model:: AbstractModel ,
153
+ :: MOI.VariableName ,
154
+ vi:: MOI.VariableIndex ,
155
+ name:: String ,
156
+ )
144
157
model. var_to_name[vi] = name
145
158
model. name_to_var = nothing # Invalidate the name map.
146
159
return
147
160
end
148
161
149
- function MOI. get (model:: AbstractModel , :: MOI.VariableName , vi:: VI )
162
+ function MOI. get (
163
+ model:: AbstractModel ,
164
+ :: MOI.VariableName ,
165
+ vi:: MOI.VariableIndex ,
166
+ )
150
167
return get (model. var_to_name, vi, " " )
151
168
end
152
169
@@ -157,13 +174,13 @@ Create and return a reverse map from name to variable index, given a map from
157
174
variable index to name. The special value `MOI.VariableIndex(0)` is used to
158
175
indicate that multiple variables have the same name.
159
176
"""
160
- function build_name_to_var_map (var_to_name:: Dict{VI ,String} )
161
- name_to_var = Dict {String,VI } ()
177
+ function build_name_to_var_map (var_to_name:: Dict{MOI.VariableIndex ,String} )
178
+ name_to_var = Dict {String,MOI.VariableIndex } ()
162
179
for (var, var_name) in var_to_name
163
180
if haskey (name_to_var, var_name)
164
181
# 0 is a special value that means this string does not map to
165
182
# a unique variable name.
166
- name_to_var[var_name] = VI (0 )
183
+ name_to_var[var_name] = MOI . VariableIndex (0 )
167
184
else
168
185
name_to_var[var_name] = var
169
186
end
@@ -184,7 +201,7 @@ function throw_if_multiple_with_name(index::MOI.Index, name::String)
184
201
end
185
202
end
186
203
187
- function MOI. get (model:: AbstractModel , :: Type{VI } , name:: String )
204
+ function MOI. get (model:: AbstractModel , :: Type{MOI.VariableIndex } , name:: String )
188
205
if model. name_to_var === nothing
189
206
# Rebuild the map.
190
207
model. name_to_var = build_name_to_var_map (model. var_to_name)
@@ -201,12 +218,18 @@ function MOI.get(
201
218
return isempty (model. var_to_name) ? [] : [MOI. VariableName ()]
202
219
end
203
220
204
- MOI. supports (model:: AbstractModel , :: MOI.ConstraintName , :: Type{<:CI} ) = true
221
+ function MOI. supports (
222
+ :: AbstractModel ,
223
+ :: MOI.ConstraintName ,
224
+ :: Type{<:MOI.ConstraintIndex} ,
225
+ )
226
+ return true
227
+ end
205
228
206
229
function MOI. set (
207
230
model:: AbstractModel ,
208
231
:: MOI.ConstraintName ,
209
- ci:: CI ,
232
+ ci:: MOI.ConstraintIndex ,
210
233
name:: String ,
211
234
)
212
235
model. con_to_name[ci] = name
@@ -231,7 +254,11 @@ function MOI.set(
231
254
return throw (MOI. VariableIndexConstraintNameError ())
232
255
end
233
256
234
- function MOI. get (model:: AbstractModel , :: MOI.ConstraintName , ci:: CI )
257
+ function MOI. get (
258
+ model:: AbstractModel ,
259
+ :: MOI.ConstraintName ,
260
+ ci:: MOI.ConstraintIndex ,
261
+ )
235
262
return get (model. con_to_name, ci, " " )
236
263
end
237
264
@@ -243,19 +270,23 @@ constraint index to name. The special value
243
270
`MOI.ConstraintIndex{Nothing, Nothing}(0)` is used to indicate that multiple
244
271
constraints have the same name.
245
272
"""
246
- function build_name_to_con_map (con_to_name:: Dict{CI ,String} )
247
- name_to_con = Dict {String,CI } ()
273
+ function build_name_to_con_map (con_to_name:: Dict{<:MOI.ConstraintIndex ,String} )
274
+ name_to_con = Dict {String,MOI.ConstraintIndex } ()
248
275
for (con, con_name) in con_to_name
249
276
if haskey (name_to_con, con_name)
250
- name_to_con[con_name] = CI {Nothing,Nothing} (0 )
277
+ name_to_con[con_name] = MOI . ConstraintIndex {Nothing,Nothing} (0 )
251
278
else
252
279
name_to_con[con_name] = con
253
280
end
254
281
end
255
282
return name_to_con
256
283
end
257
284
258
- function MOI. get (model:: AbstractModel , ConType:: Type{<:CI} , name:: String )
285
+ function MOI. get (
286
+ model:: AbstractModel ,
287
+ :: Type{ConType} ,
288
+ name:: String ,
289
+ ) where {ConType<: MOI.ConstraintIndex }
259
290
if model. name_to_con === nothing
260
291
# Rebuild the map.
261
292
model. name_to_con = build_name_to_con_map (model. con_to_name)
0 commit comments