FishEye: Tag 3356 refers to a dead (removed) revision in file `APPS/PM/Maatwerk/IngegevenKenmUpgrade.cls.xml'. FishEye: No comparison available. Pass `N' to diff? Index: DOM/PM/IngegevenKenmerkenUpgrader.cls.xml =================================================================== diff -u --- DOM/PM/IngegevenKenmerkenUpgrader.cls.xml (revision 0) +++ DOM/PM/IngegevenKenmerkenUpgrader.cls.xml (revision 3356) @@ -0,0 +1,162 @@ + + + + +Een upgrader van ingegeven kenmerken converteert de kenmerken die als parameter zijn opgegeven naar een hogere versie. Geeft een object terug van de hogere versie. + +Elke upgrader kan slechts 1 versie als invoer aanvaarden. Als de versie van de ingegeven kenmerken niet overeenkomt met de verwachte versie, wordt een error gegeven. + +Mogelijke conversiestijlen: +- Copy: de hogere versie is een apart object bekomen door kopieën en converteren van de kenmerken uit de lagere versie. +- Wrap: de conversie gebeurt lazily door een wrapper afgeleid van de hogere versie en wrapped rond de lagere versie. +- Inherit: de hogere versie leidt af van de lagere versie. + +Elke Upgrader beslist zelf welke stijl gebruikt wordt. + +Copy is interessant wanneer je de bekomen versie wil persisteren. De upgrader code is straightforward en heel leesbaar en je bekomt een +kant en klaar proper objectje van de nieuwe versie. + +Wrap is interessant voor ad hoc conversies waarbij je niet op voorhand weet welke kenmerken zullen worden gebruikt, zeker als je +vermoedt dat slechts een paar kenmerken gebruikt zullen worden. + +Inherit is handig als er geen echte conversie moet gebeuren, bv. als er enkel kenmerken bijkomen. Upgrade kan dan met weinig code een +object maken van de nieuwe klasse: clone + invullen defaults voor de nieuwe kenmerken. + +1 +vhLib.Macro,TECH.Error +1 +%RegisteredObject +0 + + +1 +1 +%Integer + + + + + +Geeft de ClassName van de nieuwe versie van de Kenmerken (of de classname van de Wrapper in geval van UpgradeViaWrapper) +1 +Kenmerken:DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken +%String + + + + + + +1 +1 +Kenmerken:DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken +DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken + + + + + +De Default conversiestijl is UpgradeViaCopy. +Alternatief kan je deze overriden om UpgradeViaInherit() of UpgradeViaWrapper() te implementeren +1 +Kenmerken:DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken +DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken + + + + + +De NewVersionClassName is de ClassName van de nieuwe versie van de IngegevenKenmeken +1 +1 +Kenmerken:DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken,NewVersionClassName:%String +DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken + + + + + +De method Upgrade() moet overschreven worden om deze method op te roepen +De NewVersionClassName is de ClassName van de nieuwe versie van de IngegevenKenmeken +1 +1 +Kenmerken:DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken,NewVersionClassName:%String +DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken + + + + + +De method Upgrade() moet overschreven worden om deze method op te roepen en de WrapperClassName aan te passen (var NewVersionClassName vervalt) +De WrapperClassName is de ClassName van de Wrapper Class voor de nieuwe versie van de IngegevenKenmeken +1 +Kenmerken:DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken,WrapperClassName:%String +DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken + + + + +1 +1 +Kenmerken:DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken +1 + + + + + +Copy maken van de IngegevenKenmerken naar de nieuwe versie en alle 'bestaande' properties exact overnemen +1 +1 +Kenmerken:DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken,ClassNameNew:%String +1 +DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken + + + + Index: APPS/PM/Maatwerk/impl/upg/TBXKenmerkenv00v01Upgrader.cls.xml =================================================================== diff -u -r1073 -r3356 --- APPS/PM/Maatwerk/impl/upg/TBXKenmerkenv00v01Upgrader.cls.xml (.../TBXKenmerkenv00v01Upgrader.cls.xml) (revision 1073) +++ APPS/PM/Maatwerk/impl/upg/TBXKenmerkenv00v01Upgrader.cls.xml (.../TBXKenmerkenv00v01Upgrader.cls.xml) (revision 3356) @@ -2,7 +2,7 @@ 1 -APPS.PM.Maatwerk.IngegevenKenmUpgrader +DOM.PM.IngegevenKenmerkenUpgrader 0 FishEye: Tag 3356 refers to a dead (removed) revision in file `APPS/PM/Maatwerk/IngegevenKenmUpgrader.cls.xml'. FishEye: No comparison available. Pass `N' to diff? Index: DOM/PM/IngegevenKenmerkenAPI.cls.xml =================================================================== diff -u -r1803 -r3356 --- DOM/PM/IngegevenKenmerkenAPI.cls.xml (.../IngegevenKenmerkenAPI.cls.xml) (revision 1803) +++ DOM/PM/IngegevenKenmerkenAPI.cls.xml (.../IngegevenKenmerkenAPI.cls.xml) (revision 3356) @@ -16,5 +16,11 @@ IKID:DOM.PM.Maatwerk.Calc.Common.IKID DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken + + +1 +Kenmerken:DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken,OutputVersieNr:%Integer +DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken + Index: vhUnitTest/APPS/PM/Maatwerk/TestIngegevenKenmUpgradeV.cls.xml =================================================================== diff -u -r1074 -r3356 --- vhUnitTest/APPS/PM/Maatwerk/TestIngegevenKenmUpgradeV.cls.xml (.../TestIngegevenKenmUpgradeV.cls.xml) (revision 1074) +++ vhUnitTest/APPS/PM/Maatwerk/TestIngegevenKenmUpgradeV.cls.xml (.../TestIngegevenKenmUpgradeV.cls.xml) (revision 3356) @@ -15,7 +15,7 @@ VersieNr is 0 Set UTKenmVersie02=##class(DOM.PM.Maatwerk.Calc.Common.impl.TBXKenmerken).%New() - Do ##class(APPS.PM.Maatwerk.IngegevenKenmUpgrade).AnalyseerKenmerkenClassName(UTKenmVersie02, .PackageName, .BaseName, .InputVersieNr, .VersiePrefix) + Do ##class(DOM.PM.impl.Upgrade.IngegevenKenmerkenUpgrade).AnalyseerKenmerkenClassName(UTKenmVersie02, .PackageName, .BaseName, .InputVersieNr, .VersiePrefix) Do $$$AssertEquals(PackageName,"DOM.PM.Maatwerk.Calc.Common.impl","De PackageName is correct") Do $$$AssertEquals(BaseName,"TBXKenmerken","De BaseName is correct") @@ -37,32 +37,34 @@ @@ -74,7 +76,8 @@ Set BaseName="UTKenmerken" Set VersiePrefix="v" - Set UTKenmVersie01=##class(vhUnitTest.APPS.PM.Maatwerk.IngegevenKenmUpgradeMock).GeefVolgendeVersieKenmerken(UTKenmVersie00,.UpgradeVersieNr,BaseName,VersiePrefix) + Set IKUpgrade=##class(vhUnitTest.APPS.PM.Maatwerk.IngegevenKenmUpgradeMockUT).%New(UTKenmVersie00) + Set UTKenmVersie01=IKUpgrade.GeefVolgendeVersieKenmerken(UTKenmVersie00,.UpgradeVersieNr,BaseName,VersiePrefix) Do $$$AssertTrue($IsObject(UTKenmVersie01),"UTKenmVersie01 is een object") Do $$$AssertEquals(UTKenmVersie01.VersieNr,1,"Het versieNr is 1") @@ -91,7 +94,8 @@ Set VersiePrefix="v" $$$LocalErrorTrapOn - Set UTKenmVersie01=##class(vhUnitTest.APPS.PM.Maatwerk.IngegevenKenmUpgradeMock).GeefVolgendeVersieKenmerken(UTKenmVersie00,.UpgradeVersieNr,BaseName,VersiePrefix) + Set IKUpgrade=##class(vhUnitTest.APPS.PM.Maatwerk.IngegevenKenmUpgradeMockUT).%New(UTKenmVersie00) + Set UTKenmVersie01=IKUpgrade.GeefVolgendeVersieKenmerken(UTKenmVersie00,.UpgradeVersieNr,BaseName,VersiePrefix) $$$ClearError $$$LocalErrorTrapOff @@ -107,17 +111,18 @@ Set UTKenmVersie00=##class(vhUnitTest.APPS.PM.Maatwerk.impl.UTKenmerkenv00).%New() Set UTKenmVersie00.ProptA="A.v0" Set UTKenmVersie00.ProptB="B.v0" - + // Upgraden naar versie 01 - Set UTKenmVersie01=##class(vhUnitTest.APPS.PM.Maatwerk.IngegevenKenmUpgradeMock).GeefIngegevenKenmerkenVersie(UTKenmVersie00, 1) + Set IKUpgrade=##class(vhUnitTest.APPS.PM.Maatwerk.IngegevenKenmUpgradeMockUT).%New(UTKenmVersie00) + Set UTKenmVersie01=IKUpgrade.GeefIngegevenKenmerkenVersie(1) Do $$$AssertTrue($IsObject(UTKenmVersie01),"UTKenmVersie01 is een object") Do $$$AssertEquals(UTKenmVersie01.VersieNr,1,"Het versieNr is 1") Do $$$AssertEquals(UTKenmVersie01.ProptA,"A.v0","ProptA is niet gewijzigd") Do $$$AssertEquals(UTKenmVersie01.ProptB,"B.v0+B.v1","ProptB is gewijzigd") - // Upgraden naar versie 02, maar wel beginnen van de oorspronkelijke versie (v00) - Set UTKenmVersie02=##class(vhUnitTest.APPS.PM.Maatwerk.IngegevenKenmUpgradeMock).GeefIngegevenKenmerkenVersie(UTKenmVersie00, "02") + Set IKUpgrade=##class(vhUnitTest.APPS.PM.Maatwerk.IngegevenKenmUpgradeMockUT).%New(UTKenmVersie00) + Set UTKenmVersie02=IKUpgrade.GeefIngegevenKenmerkenVersie("02") Do $$$AssertTrue($IsObject(UTKenmVersie02),"UTKenmVersie02 is een object") Do $$$AssertEquals(UTKenmVersie02.VersieNr,2,"Het versieNr is 2") Do $$$AssertEquals(UTKenmVersie02.ProptA,"A.v0","ProptA is niet gewijzigd") @@ -126,7 +131,8 @@ // Nog een versie verder upgraden, maar wel terug beginnen van de oorspronkelijke versie (v00) - Set UTKenmVersie03=##class(vhUnitTest.APPS.PM.Maatwerk.IngegevenKenmUpgradeMock).GeefIngegevenKenmerkenVersie(UTKenmVersie00, 3) + Set IKUpgrade=##class(vhUnitTest.APPS.PM.Maatwerk.IngegevenKenmUpgradeMockUT).%New(UTKenmVersie00) + Set UTKenmVersie03=IKUpgrade.GeefIngegevenKenmerkenVersie(3) Do $$$AssertTrue($IsObject(UTKenmVersie03),"UTKenmVersie03 is een object") Do $$$AssertEquals(UTKenmVersie03.VersieNr,3,"Het versieNr is 3") ; ProptA bestaat niet in v3 @@ -141,7 +147,8 @@ Set UTKenmVersie01.ProptA="A.v1" Set UTKenmVersie01.ProptB="B.v1" - Set OutputKenmerken=##class(APPS.PM.Maatwerk.IngegevenKenmUpgrade).GeefIngegevenKenmerkenVersie(UTKenmVersie01, 1) + Set IKUpgrade=##class(vhUnitTest.APPS.PM.Maatwerk.IngegevenKenmUpgradeMockUT).%New(UTKenmVersie01) + Set OutputKenmerken=IKUpgrade.GeefIngegevenKenmerkenVersie(1) // OutputKenmerken zal hetzelfde object zijn als de input; de waarden van de properties zijn NIET gewijzigd. Do $$$AssertTrue($IsObject(OutputKenmerken),"UTKenmVersie01 is een object") @@ -158,7 +165,8 @@ Set UTKenmVersie01=##class(vhUnitTest.APPS.PM.Maatwerk.impl.UTKenmerkenv01).%New() $$$LocalErrorTrapOn - Set OutputKenmerken=##class(APPS.PM.Maatwerk.IngegevenKenmUpgrade).GeefIngegevenKenmerkenVersie(UTKenmVersie01, 0) + Set IKUpgrade=##class(vhUnitTest.APPS.PM.Maatwerk.IngegevenKenmUpgradeMockUT).%New(UTKenmVersie01) + Set OutputKenmerken=IKUpgrade.GeefIngegevenKenmerkenVersie(0) $$$ClearError $$$LocalErrorTrapOff @@ -184,5 +192,10 @@ Quit $P(ErrorMsg,"`",2) ]]> + + + + Index: vhUnitTest/APPS/PM/Maatwerk/impl/upg/UTKenmerkenv02v03bisUpgrad.cls.xml =================================================================== diff -u -r1074 -r3356 --- vhUnitTest/APPS/PM/Maatwerk/impl/upg/UTKenmerkenv02v03bisUpgrad.cls.xml (.../UTKenmerkenv02v03bisUpgrad.cls.xml) (revision 1074) +++ vhUnitTest/APPS/PM/Maatwerk/impl/upg/UTKenmerkenv02v03bisUpgrad.cls.xml (.../UTKenmerkenv02v03bisUpgrad.cls.xml) (revision 3356) @@ -5,7 +5,7 @@ Deze Upgrader is de bis-versie van de vorige. M.a.w. een upgrade voor dezelfde versie, maar via een andere conversiestijl, met name UpgradeViaCopy() 1 -APPS.PM.Maatwerk.IngegevenKenmUpgrader +DOM.PM.IngegevenKenmerkenUpgrader 0 Index: vhUnitTest/APPS/PM/Maatwerk/impl/upg/UTKenmerkenv01v02Upgrader.cls.xml =================================================================== diff -u -r1074 -r3356 --- vhUnitTest/APPS/PM/Maatwerk/impl/upg/UTKenmerkenv01v02Upgrader.cls.xml (.../UTKenmerkenv01v02Upgrader.cls.xml) (revision 1074) +++ vhUnitTest/APPS/PM/Maatwerk/impl/upg/UTKenmerkenv01v02Upgrader.cls.xml (.../UTKenmerkenv01v02Upgrader.cls.xml) (revision 3356) @@ -2,7 +2,7 @@ 1 -APPS.PM.Maatwerk.IngegevenKenmUpgrader +DOM.PM.IngegevenKenmerkenUpgrader 0 Index: vhUnitTest/APPS/PM/Maatwerk/impl/upg/UTKenmerkenv02v03Upgrader.cls.xml =================================================================== diff -u -r1074 -r3356 --- vhUnitTest/APPS/PM/Maatwerk/impl/upg/UTKenmerkenv02v03Upgrader.cls.xml (.../UTKenmerkenv02v03Upgrader.cls.xml) (revision 1074) +++ vhUnitTest/APPS/PM/Maatwerk/impl/upg/UTKenmerkenv02v03Upgrader.cls.xml (.../UTKenmerkenv02v03Upgrader.cls.xml) (revision 3356) @@ -2,7 +2,7 @@ 1 -APPS.PM.Maatwerk.IngegevenKenmUpgrader +DOM.PM.IngegevenKenmerkenUpgrader 0 Index: vhUnitTest/APPS/PM/Maatwerk/IngegevenKenmUpgradeMock.cls.xml =================================================================== diff -u -r1074 -r3356 --- vhUnitTest/APPS/PM/Maatwerk/IngegevenKenmUpgradeMock.cls.xml (.../IngegevenKenmUpgradeMock.cls.xml) (revision 1074) +++ vhUnitTest/APPS/PM/Maatwerk/IngegevenKenmUpgradeMock.cls.xml (.../IngegevenKenmUpgradeMock.cls.xml) (revision 3356) @@ -1,16 +1,28 @@ + +Mock-klasse om de Private methods public te maken 1 -APPS.PM.Maatwerk.IngegevenKenmUpgrade +DOM.PM.impl.Upgrade.IngegevenKenmerkenUpgrade 0 - -1 -1 + + +Public +FromVersieNr:%String,ToVersieNr:%String,BaseName:%String,VersiePrefix:%String %String - + + + +Public + +DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken + + Index: vhUnitTest/APPS/PM/Maatwerk/impl/upg/UTKenmerkenv00v01Upgrader.cls.xml =================================================================== diff -u -r1074 -r3356 --- vhUnitTest/APPS/PM/Maatwerk/impl/upg/UTKenmerkenv00v01Upgrader.cls.xml (.../UTKenmerkenv00v01Upgrader.cls.xml) (revision 1074) +++ vhUnitTest/APPS/PM/Maatwerk/impl/upg/UTKenmerkenv00v01Upgrader.cls.xml (.../UTKenmerkenv00v01Upgrader.cls.xml) (revision 3356) @@ -2,7 +2,7 @@ 1 -APPS.PM.Maatwerk.IngegevenKenmUpgrader +DOM.PM.IngegevenKenmerkenUpgrader 0 Index: WV PM Maatwerk.prj.xml =================================================================== diff -u -r3224 -r3356 --- WV PM Maatwerk.prj.xml (.../WV PM Maatwerk.prj.xml) (revision 3224) +++ WV PM Maatwerk.prj.xml (.../WV PM Maatwerk.prj.xml) (revision 3356) @@ -1,6 +1,6 @@ - + @@ -26,7 +26,6 @@ - @@ -59,6 +58,7 @@ + @@ -324,6 +324,7 @@ + @@ -344,6 +345,7 @@ + Index: vhUnitTest/APPS/PM/Maatwerk/TestIngegevenKenmUpgrader.cls.xml =================================================================== diff -u -r1074 -r3356 --- vhUnitTest/APPS/PM/Maatwerk/TestIngegevenKenmUpgrader.cls.xml (.../TestIngegevenKenmUpgrader.cls.xml) (revision 1074) +++ vhUnitTest/APPS/PM/Maatwerk/TestIngegevenKenmUpgrader.cls.xml (.../TestIngegevenKenmUpgrader.cls.xml) (revision 3356) @@ -16,7 +16,7 @@ Index: vhUnitTest/APPS/PM/Maatwerk/IngegevenKenmUpgradeMockUT.cls.xml =================================================================== diff -u --- vhUnitTest/APPS/PM/Maatwerk/IngegevenKenmUpgradeMockUT.cls.xml (revision 0) +++ vhUnitTest/APPS/PM/Maatwerk/IngegevenKenmUpgradeMockUT.cls.xml (revision 3356) @@ -0,0 +1,17 @@ + + + + +Mock-klasse voor de UnitTest-upgraders, deze zitten in een aparte package. +1 +vhUnitTest.APPS.PM.Maatwerk.IngegevenKenmUpgradeMock +0 + + +1 +%String + + + + Index: DOM/PM/impl/Upgrade/IngegevenKenmerkenUpgrade.cls.xml =================================================================== diff -u --- DOM/PM/impl/Upgrade/IngegevenKenmerkenUpgrade.cls.xml (revision 0) +++ DOM/PM/impl/Upgrade/IngegevenKenmerkenUpgrade.cls.xml (revision 3356) @@ -0,0 +1,198 @@ + + + + +Deze klasse kan gebruikt worden om ingegeven kenmerken van een bepaalde versie te bekomen. +Geef kenmerken mee (aan de constructor) plus de versie die je nodig hebt. + +Als de ingegeven kenmerken niet kunnen geconverteerd worden, wordt een error teruggegeven. +vhLib.Macro,TECH.Error +1 +%RegisteredObject +0 + + +DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken +1 + + + +%String + + + +IngegevenKenmerken:DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken +1 +1 +%Status + + + + + +Dit is de hoofdfunctionaliteit van deze klasse: +Converteert de IngegevenKenmerken naar de gevraagde OutputVersie van de Kenmerken +OutputVersieNr:%Integer +DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken + + + + +InputVersieNr:%String,OutputVersieNr:%String,BaseName:%String,VersiePrefix:%String +1 +DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken +FromVersieNr) { + // Als de VersieNr niet verhoogd is, dan zou dit leiden tot een oneindige lus --> throw error + $$$ThrowError($$$errGeneralError,"UpgradeVersieNr is niet verhoogd na GeefVolgendeVersieKenmerken()") + } + + // Prep voor volgende iteratie + Set FromIK=NextIK + Set FromVersieNr=UpgradeVersieNr + + } + Quit NextIK +]]> + + + + +1 +DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken + + + + +FromVersieNr:%String,ToVersieNr:%String,BaseName:%String,VersiePrefix:%String +1 +%String + + + + +1 +%String + + + + + +1 + + + + + +Deze classmethod wordt ook gebruikt door de klasse DOM.PM.IngegevenKenmerkenUpgrader; moet dus als classmethod blijven staan, NIET wijzigen naar een private method (WimV 30/11/2011). +1 + +v + Set BaseName=$P(ClassName,VersiePrefix,1,$L(ClassName,VersiePrefix)-1) + Set VersieNr=+$$$LastPiece(ClassName,VersiePrefix) + } + Else { + // ClassName is NIET volgens de naming-conventie --> VersieNr is 0 + Set BaseName=ClassName + Set VersieNr=0 + } + } + Else { + Set BaseName="" + $$$ThrowError($$$errInvalidInput,"ClassName van Kenmerken is ongeldig") + } + Quit // +]]> + + + + +Geeft het VersieNr terug als opgemaakte tekst, i.e. met de nodige voorloopnullen. + +Deze classmethod wordt ook gebruikt door de klasse DOM.PM.IngegevenKenmerkenUpgrader; moet dus als classmethod blijven staan, NIET wijzigen naar een private method (WimV 30/11/2011). +1 +VersieNr:%Integer +%String + + + + Index: DOM/PM/impl/IngegevenKenmerkenAPIimpl.cls.xml =================================================================== diff -u -r2444 -r3356 --- DOM/PM/impl/IngegevenKenmerkenAPIimpl.cls.xml (.../IngegevenKenmerkenAPIimpl.cls.xml) (revision 2444) +++ DOM/PM/impl/IngegevenKenmerkenAPIimpl.cls.xml (.../IngegevenKenmerkenAPIimpl.cls.xml) (revision 3356) @@ -51,5 +51,14 @@ Quit IKIDHash.GeefIngegevenKenmerken(IKID.GeefOverflowID()) ]]> + + +Kenmerken:DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken,OutputVersieNr:%Integer +DOM.PM.Maatwerk.Calc.Common.IngegevenKenmerken + +