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; } }