Utility methods for %ListOfObjects. REMARK: Probably this functionality exists already somewhere.... vhLib.Macro 1 %RegisteredObject 1 Listbuild:%List %ListOfDataTypes 1 List:%ListOfDataTypes %List 1 List:%ListOfDataTypes,Delim:%String="\" %String 1 List:%ListOfDataTypes,IsVisibleKeyIdentification:%String=1 %Stream 1 Iterator:TECH.Iterator,Delim:%String="\" %String 1 Iterator:TECH.Iterator %List OPGELET : Het resultaat van PiecesToList is een %ListOfDataTypes Dit is anders dan in PiecesToList^vhLib() , want daar is het resultaat een ListBuild. Opgelet dus bij code-rewrite! 1 PieceDelimitedList:%String="",Delim:%String %ListOfDataTypes 1 PieceDelimitedList:%String="",Delim:%String %List Copy the list-items from sourceList into targetList. Returns the targetList. 1 sourceList:%ListOfObjects,targetList:%ListOfObjects="" %ListOfObjects Maakt een diepe copy (2 diep) van een aray. De elementen van de array moeten %RegisteredObjects zijn. 1 Source:%AbstractArray %AbstractArray 1 sourceArray:%ArrayOfDataTypes,targetArray:%ArrayOfDataTypes="" %ArrayOfDataTypes 1 sourceArray:%ArrayOfObjects,targetArray:%ArrayOfObjects="" %ArrayOfObjects 1 sourceList:%ListOfDataTypes,targetList:%ListOfDataTypes="" %ListOfDataTypes Werkt ook voor ListOfObjects en Item een object 1 List:%ListOfDataTypes,Item:%String %Boolean 1 Value:%CacheString,List:%CacheString,AllOccurences:%Boolean=0 %Boolean 1 Value:%CacheString,List:%List,AllOccurences:%Boolean=1 %List 1 List:%ListOfDataTypes,Values:%ArrayOfDataTypes Oproepen via set Lijst=##class(TECH.ListUtils).CreateListOfDataTypes("value1","value2","value3", ... 1 ArgItems...:%String %ListOfDataTypes Oproepen via set Lijst=##class(TECH.ListUtils).CreateListOfObjects(obj1,obj2,obj3, ... 1 ArgItems...:%String %ListOfObjects [Previously private] 1 list:%AbstractList,mdArgItems:%String 1 List1:%ListOfDataTypes,List2:%ListOfDataTypes %ListOfDataTypes 1 Iterator1:TECH.Iterator,Iterator2:TECH.Iterator %ListOfDataTypes 1 List1:%ListOfDataTypes,List2:%ListOfDataTypes %ListOfDataTypes 1 Iterator1:TECH.Iterator,Iterator2:TECH.Iterator %ListOfDataTypes Maakt unie van twee piece-delimited strings 1 String1:%String,String2:%String,Delim:%String="\" 1 List:%ListOfObjects,Property:%String,Value:%String="" %Boolean 1 Value:%String,ItemsIterator:TECH.Iterator,EqualsComparator:TECH.EqualsComparator.EqualsComparator=##class(TECH.EqualsComparator.StringEqualsComparator).%New() %Boolean 1 Lijst:%ListOfObjects,Comparator:TECH.Comparator.IComparator %CacheString 1 Lijst:%ListOfObjects,Comparator:TECH.Comparator.IComparator %CacheString 1 Lijst:%ListOfObjects,Comparator:TECH.Comparator.IComparator,IsMaximum:%Boolean 1 %CacheString 0 { Set Extrema = Lijst.GetAt(1) #dim i As TECH.Integer For i = 2:1:Lijst.Count() { #dim HulpWaarde As %CacheString = Lijst.GetAt(i) If (..ComparatorValidator(HulpWaarde,Extrema, Comparator, IsMaximum)) { Set Extrema = HulpWaarde } } } Quit Extrema ]]> 1 Waarde1:%CacheString,Waarde2:%CacheString,Comparator:TECH.Comparator.IComparator,IsMaximum:%Boolean basic 1 %Boolean 1 Lijst1:%ListOfDataTypes,Lijst2:%ListOfDataTypes %Boolean 1 1 1 1 %ListOfDataTypes 1 MultiDim:TECH.String %ListOfDataTypes 1 List:%ListOfDataTypes %ListOfDataTypes 1 Array:%ArrayOfObjects %ListOfObjects 1 List:%Collection.AbstractIterator %ListOfDataTypes 1 List1:%ListOfDataTypes,List2:%ListOfDataTypes %Boolean Werkt ook voor %ArrayOfDataTypes 1 List1:%ListOfDataTypes,List2:%ListOfDataTypes %Boolean 1 List:%ListOfDataTypes,Key:%String="" TECH.KeyValueList 1 List1:%ListOfDataTypes,List2:%ListOfDataTypes 0 %ListOfDataTypes