protected virtual ConstraintBindingSet[] CloneConstraintBindingSet(EiffelStructures.table.HASH_TABLE_REFERENCE_REFERENCE o) { ConstraintBindingSet[] result = null; if (o != null && o.count() > 0) { result = new ConstraintBindingSet[o.count()]; o.start(); for (int i = 1; i <= result.Length; i++) { ConstraintBindingSet constraintBindingSet = new ConstraintBindingSet(); constraintBindingSet.terminology = o.key_for_iteration().ToString(); EiffelStructures.table.Impl.HASH_TABLE_REFERENCE_REFERENCE adlTerms = o.item_for_iteration() as EiffelStructures.table.Impl.HASH_TABLE_REFERENCE_REFERENCE; CONSTRAINT_BINDING_ITEM[] localTerms = new CONSTRAINT_BINDING_ITEM[adlTerms.count()]; adlTerms.start(); for (int j = 1; j <= adlTerms.count(); j++) { openehr.common_libs.basic.Impl.URI term = adlTerms.item_for_iteration() as openehr.common_libs.basic.Impl.URI; CONSTRAINT_BINDING_ITEM localTerm = new CONSTRAINT_BINDING_ITEM(); localTerm.code = adlTerms.key_for_iteration().ToString(); localTerm.value = adlTerms.item_for_iteration().ToString(); localTerms[j - 1] = localTerm; adlTerms.forth(); } constraintBindingSet.items = localTerms; result[i - 1] = constraintBindingSet; o.forth(); } } return result; }
CONSTRAINT_BINDING_ITEM[] VisitConstraintBindingItems(CONSTRAINT_BINDING_ITEM[] bindingItems) { CONSTRAINT_BINDING_ITEM[] result = null; if (bindingItems != null) { SortedDictionary<string, CONSTRAINT_BINDING_ITEM> sortedItems = new SortedDictionary<string, CONSTRAINT_BINDING_ITEM>(); foreach (CONSTRAINT_BINDING_ITEM item in bindingItems) sortedItems.Add(item.code, item); result = new CONSTRAINT_BINDING_ITEM[sortedItems.Count]; sortedItems.Values.CopyTo(result, 0); } return result; }
public void AddOrReplaceConstraintBinding(string query, string acCode, string terminology) { ConstraintBindingSet ts = ConstraintBindingSetForTerminology(terminology); if (ts != null) { AddTerminology(terminology); CONSTRAINT_BINDING_ITEM binding = null; CONSTRAINT_BINDING_ITEM[] bindings = ts.items; if (bindings != null) { foreach (CONSTRAINT_BINDING_ITEM b in bindings) if (b.code == acCode) binding = b; } if (binding == null) { int i = 0; if (bindings == null) bindings = new CONSTRAINT_BINDING_ITEM[1]; else { i = bindings.Length; Array.Resize(ref bindings, i + 1); } ts.items = bindings; bindings[i] = binding = new CONSTRAINT_BINDING_ITEM(); binding.code = acCode.ToLowerInvariant(); } binding.value = query; } }