Index: DOM/PM/Maatwerk/Calc/HF/IHalffabItem.cls.xml =================================================================== diff -u -r30191 -r30286 --- DOM/PM/Maatwerk/Calc/HF/IHalffabItem.cls.xml (.../IHalffabItem.cls.xml) (revision 30191) +++ DOM/PM/Maatwerk/Calc/HF/IHalffabItem.cls.xml (.../IHalffabItem.cls.xml) (revision 30286) @@ -13,7 +13,7 @@ TECH.Error 1 -%RegisteredObject +TECH.RegisteredObject %String @@ -68,12 +68,17 @@ %String + +DOM.PM.Maatwerk.Calc.HF.IHalffabItem + + Context:DOM.PM.Maatwerk.Calc.HF.HalffabContext,Rol:%String 1 1 %Status %String - @@ -162,6 +176,12 @@ + + +TECH.Iterator + + Index: DOM/PM/Maatwerk/Calc/HF/HalffabItemsIterator.cls.xml =================================================================== diff -u --- DOM/PM/Maatwerk/Calc/HF/HalffabItemsIterator.cls.xml (revision 0) +++ DOM/PM/Maatwerk/Calc/HF/HalffabItemsIterator.cls.xml (revision 30286) @@ -0,0 +1,102 @@ + + + +TECH.RegisteredObject,TECH.Iterator + + +TECH.Iterator +1 + + + +%String +1 + + + +DOM.PM.Maatwerk.Calc.HF.HalffabItemsBoom +1 + + + +%Boolean +1 + + + +DOM.PM.Maatwerk.Calc.HF.ConcreetHalffabItem +1 + + + +Boom:DOM.PM.Maatwerk.Calc.HF.HalffabItemsBoom,Rol:%String="" +1 +1 +%Status + + + + +%Boolean + + + + +DOM.PM.Maatwerk.Calc.HF.ConcreetHalffabItem + + + + + + + + + + + + +1 + + + + +1 +%Boolean + + + + +1 +%Boolean + + + + + + Index: vhTest/Fake/DOM/PM/Maatwerk/Calc/HF/HalffabItemsBoom.cls.xml =================================================================== diff -u -r30285 -r30286 --- vhTest/Fake/DOM/PM/Maatwerk/Calc/HF/HalffabItemsBoom.cls.xml (.../HalffabItemsBoom.cls.xml) (revision 30285) +++ vhTest/Fake/DOM/PM/Maatwerk/Calc/HF/HalffabItemsBoom.cls.xml (.../HalffabItemsBoom.cls.xml) (revision 30286) @@ -18,12 +18,31 @@ + +TECH.Iterator + + + + +Rol:%String="" +TECH.Iterator + + + TECH.Iterator + +TECH.Iterator + + + Rol:%String %Boolean Index: DOM/PM/Maatwerk/Calc/HF/SamengesteldHalffabItem.cls.xml =================================================================== diff -u -r30112 -r30286 --- DOM/PM/Maatwerk/Calc/HF/SamengesteldHalffabItem.cls.xml (.../SamengesteldHalffabItem.cls.xml) (revision 30112) +++ DOM/PM/Maatwerk/Calc/HF/SamengesteldHalffabItem.cls.xml (.../SamengesteldHalffabItem.cls.xml) (revision 30286) @@ -19,6 +19,12 @@ ]]> + +TECH.Iterator + + + %Boolean 0 @@ -51,7 +57,23 @@ HalffabItem:DOM.PM.Maatwerk.Calc.HF.IHalffabItem - @@ -60,8 +82,7 @@ + +TECH.Iterator + + + + +Rol:%String="" +TECH.Iterator + + + Rol:%String DOM.PM.Maatwerk.Calc.HF.IHalffabItem @@ -35,8 +48,9 @@ +Rol:%String="" TECH.Iterator - @@ -46,6 +60,12 @@ ]]> + +TECH.Iterator + + + HalffabItem:DOM.PM.Maatwerk.Calc.HF.IHalffabItem DOM.PM.Maatwerk.Calc.HF.IHalffabItem array -1 @@ -26,7 +25,9 @@ Voegt het HFItem toe aan de Lijst van HalffabItems, maar niet aan de Wortel van de "Boom" HalffabItem:DOM.PM.Maatwerk.Calc.HF.IHalffabItem - @@ -50,6 +51,13 @@ Set HalffabItem = HalffabItem.GeefHalffabItem($Piece(Rol,Delimiter,i)) } } + + if HalffabItem="" { + set Iterator = ##class(DOM.PM.Maatwerk.Calc.HF.HalffabItemsIterator).%New($this,Rol) + if Iterator.HasNext() set HalffabItem = Iterator.Next() + do:Iterator.HasNext() ##class(TECH.Exceptions.GeneralErrorException).%New("Meerdere items gevonden met rol '"_Rol_"'") + } + Quit HalffabItem ]]> @@ -61,6 +69,34 @@ ]]> + +Rol:%String="" +TECH.Iterator + + + + +TECH.Iterator + + + + +Rol:%String="" +TECH.Iterator + + + + +TECH.Iterator + + + TECH.Iterator - - -TECH.Iterator - - Index: vhUnitTest/DOM/PM/Maatwerk/Calc/HF/HalffabItemsBoom/Test.cls.xml =================================================================== diff -u --- vhUnitTest/DOM/PM/Maatwerk/Calc/HF/HalffabItemsBoom/Test.cls.xml (revision 0) +++ vhUnitTest/DOM/PM/Maatwerk/Calc/HF/HalffabItemsBoom/Test.cls.xml (revision 30286) @@ -0,0 +1,229 @@ + + + +vhUnitTest.TestCase + + +DOM.PM.Maatwerk.Calc.HF.HalffabItemsBoom +1 + + + +aTestName:%String + + + + + + + + + + + + + + + + + + + + + + + + +Std1")) + do $$$AssertEquals(..Boom.GeefHalffabItem("HoofdSam1->Std1").GeefVolledigeRolNaam(),"HoofdSam1.Std1") + + do $$$AssertTrue(..Boom.BevatRol("HoofdSam1->Std2")) + do $$$AssertEquals(..Boom.GeefHalffabItem("HoofdSam1->Std2").GeefVolledigeRolNaam(),"HoofdSam1.Std2") + + do $$$AssertTrue(..Boom.BevatRol("HoofdSam2->Sam1")) + do $$$AssertEquals(..Boom.GeefHalffabItem("HoofdSam2->Sam1").GeefVolledigeRolNaam(),"HoofdSam2.Sam1") + + do $$$AssertTrue(..Boom.BevatRol("HoofdSam2->Sam1->Std1")) + do $$$AssertEquals(..Boom.GeefHalffabItem("HoofdSam2->Sam1->Std1").GeefVolledigeRolNaam(),"HoofdSam2.Sam1.Std1") + + do $$$AssertTrue(..Boom.BevatRol("HoofdSam2->Sam2")) + do $$$AssertEquals(..Boom.GeefHalffabItem("HoofdSam2->Sam2").GeefVolledigeRolNaam(),"HoofdSam2.Sam2") + + do $$$AssertTrue(..Boom.BevatRol("HoofdSam2->Sam2->Std1")) + do $$$AssertEquals(..Boom.GeefHalffabItem("HoofdSam2->Sam2->Std1").GeefVolledigeRolNaam(),"HoofdSam2.Sam2.Std1") +]]> + + + +ItemA")) + do $$$AssertEquals(..Boom.GeefHalffabItem("Hoofd->ItemA").GeefVolledigeRolNaam(),"Hoofd.ItemA") + + do $$$AssertTrue(..Boom.BevatRol("Hoofd->ItemB")) + do $$$AssertEquals(..Boom.GeefHalffabItem("Hoofd->ItemB").GeefVolledigeRolNaam(),"Afwijkende volledigerolnaam") +]]> + + + + + + + + + + + + + + + + + + + + + + + +Std1")) + + do ..Boom.GeefHalffabItem("Sam1") +]]> + + + +Naam:%String,Aantal:%Integer=1 +1 + + + + +Naam:%String,AantalTeMakenItems:%Integer,ItemType:%String="Std",Aantal:%Integer=1 +1 + + + + +VerwachtAantal:%Integer +1 + + + + + + Index: DOM/PM/Maatwerk/Calc/HF/ConcreetHalffabItemsIterator.cls.xml =================================================================== diff -u --- DOM/PM/Maatwerk/Calc/HF/ConcreetHalffabItemsIterator.cls.xml (revision 0) +++ DOM/PM/Maatwerk/Calc/HF/ConcreetHalffabItemsIterator.cls.xml (revision 30286) @@ -0,0 +1,15 @@ + + + +DOM.PM.Maatwerk.Calc.HF.HalffabItemsIterator + + +1 +%Boolean + + + + + +