Index: TECH/ObjectUtils/impl/WaardenKopieerder/KopieerWaarden.cls.xml
===================================================================
diff -u
--- TECH/ObjectUtils/impl/WaardenKopieerder/KopieerWaarden.cls.xml (revision 0)
+++ TECH/ObjectUtils/impl/WaardenKopieerder/KopieerWaarden.cls.xml (revision 1291)
@@ -0,0 +1,132 @@
+
+
+
+vhLib.Class
+TECH.RegisteredObject
+
+
+%String
+list
+1
+
+
+
+%ListOfDataTypes
+
+
+
+
+Object1:%RegisteredObject,Object2:%RegisteredObject,flagOverwrite:%Boolean=0
+TECH.ObjectUtils.KopieerWaardenResultaat
+ "_Object2.%ClassName(1))
+ do ##class(TECH.ExceptionHandler).Throw(Exception)
+ }
+
+ #dim arrProperties As %String = ""
+ do arrProperties^vhLib.Class(Object1.%ClassName(1),.arrProperties,"A","A","A")
+ set itProperties = ##class(TECH.ArrayOneDimIterator).%New(.arrProperties)
+ while itProperties.HasNext() {
+ #dim PropertyInfo As %List = itProperties.Next()
+ #dim PropertyName As %String = itProperties.Key()
+
+ #dim WaardePropertyObject1 As %String = ..GeefPropertyWaarde(Object1,PropertyName)
+ #dim WaardePropertyObject2 As %String = ..GeefPropertyWaarde(Object2,PropertyName)
+
+ #dim PropertyIsCollection As %String = $listget(PropertyInfo,$$$fldCollection)
+
+ #dim MagOverschrijven As %Boolean = 0
+
+ if ..WaardenVerschillen(WaardePropertyObject1 , WaardePropertyObject2 , PropertyIsCollection ) {
+ if ##class(TECH.ClassUtils).IsDataType($listget(PropertyInfo,$$$fldClassName)) {
+ if $length(PropertyIsCollection) {
+ set MagOverschrijven = ..MagOverschrijven(PropertyName , (WaardePropertyObject1.Count()=0) , (WaardePropertyObject2.Count()=0), flagOverwrite)
+ if MagOverschrijven {
+ if (WaardePropertyObject2.Count()>0) {
+ if PropertyIsCollection = "list" set WaardePropertyObject1 = ##class(TECH.ListUtils).CopyListOfDataTypes(WaardePropertyObject2)
+ if PropertyIsCollection = "array" set WaardePropertyObject1 = ##class(TECH.ListUtils).CopyArrayOfDataTypes(WaardePropertyObject2)
+ }
+ }
+ } else {
+ set MagOverschrijven = ..MagOverschrijven(PropertyName , (WaardePropertyObject1="") , (WaardePropertyObject2="" ) , flagOverwrite)
+ if MagOverschrijven {
+ set WaardePropertyObject1 = WaardePropertyObject2
+ }
+ }
+ if MagOverschrijven {
+ do ..ZetPropertyWaarde(Object1,PropertyName,WaardePropertyObject1)
+ do ..ZetGewijzigdeProperty(PropertyName)
+ }
+ }
+ }
+ }
+
+ Quit ..GeefKopieerWaardenResultaat()
+]]>
+
+
+
+Value1:%CacheString,Value2:%CacheString,PropertyIsCollection:%Boolean
+
+
+
+
+PropertyName:%String,OudeWaardeIsLeeg:%Boolean,NieuweWaardeIsLeeg:%Boolean,flagOverwrite:%Boolean
+1
+%Boolean
+
+
+
+
+1
+TECH.ObjectUtils.KopieerWaardenResultaat
+
+
+
+
+Object:%Library.Base,Property:%String
+1
+0
+%CacheString
+
+
+
+
+Object:%Library.Base,Property:%String,Value:%CacheString
+1
+0
+
+
+
+
+PropertyName:%String
+1
+
+
+
+
+
+
Index: TECH/ObjectUtils/impl/WaardenKopieerder.cls.xml
===================================================================
diff -u -r848 -r1291
--- TECH/ObjectUtils/impl/WaardenKopieerder.cls.xml (.../WaardenKopieerder.cls.xml) (revision 848)
+++ TECH/ObjectUtils/impl/WaardenKopieerder.cls.xml (.../WaardenKopieerder.cls.xml) (revision 1291)
@@ -1,131 +1,16 @@
-vhLib.Class
TECH.RegisteredObject,TECH.ObjectUtils.WaardenKopieerder
-
-%String
-list
-1
-
-
-
-%ListOfDataTypes
-
-
-
Object1:%RegisteredObject,Object2:%RegisteredObject,flagOverwrite:%Boolean=0
TECH.ObjectUtils.KopieerWaardenResultaat
"_Object2.%ClassName(1))
- do ##class(TECH.ExceptionHandler).Throw(Exception)
- }
-
- #dim arrProperties As %String = ""
- do arrProperties^vhLib.Class(Object1.%ClassName(1),.arrProperties,"A","A","A")
- set itProperties = ##class(TECH.ArrayOneDimIterator).%New(.arrProperties)
- while itProperties.HasNext() {
- #dim PropertyInfo As %List = itProperties.Next()
- #dim PropertyName As %String = itProperties.Key()
-
- #dim WaardePropertyObject1 As %String = ..GeefPropertyWaarde(Object1,PropertyName)
- #dim WaardePropertyObject2 As %String = ..GeefPropertyWaarde(Object2,PropertyName)
-
- #dim PropertyIsCollection As %String = $listget(PropertyInfo,$$$fldCollection)
-
- #dim MagOverschrijven As %Boolean = 0
-
- if ..WaardenVerschillen(WaardePropertyObject1 , WaardePropertyObject2 , PropertyIsCollection ) {
- if ##class(TECH.ClassUtils).IsDataType($listget(PropertyInfo,$$$fldClassName)) {
- if $length(PropertyIsCollection) {
- set MagOverschrijven = ..MagOverschrijven(PropertyName , (WaardePropertyObject1.Count()=0) , (WaardePropertyObject2.Count()=0), flagOverwrite)
- if MagOverschrijven {
- if (WaardePropertyObject2.Count()>0) {
- if PropertyIsCollection = "list" set WaardePropertyObject1 = ##class(TECH.ListUtils).CopyListOfDataTypes(WaardePropertyObject2)
- if PropertyIsCollection = "array" set WaardePropertyObject1 = ##class(TECH.ListUtils).CopyArrayOfDataTypes(WaardePropertyObject2)
- }
- }
- } else {
- set MagOverschrijven = ..MagOverschrijven(PropertyName , (WaardePropertyObject1="") , (WaardePropertyObject2="" ) , flagOverwrite)
- if MagOverschrijven {
- set WaardePropertyObject1 = WaardePropertyObject2
- }
- }
- if MagOverschrijven {
- do ..ZetPropertyWaarde(Object1,PropertyName,WaardePropertyObject1)
- do ..ZetGewijzigdeProperty(PropertyName)
- }
- }
- }
- }
-
- Quit ..GeefKopieerWaardenResultaat()
+ set Kopieerder = ##class(TECH.ObjectUtils.impl.WaardenKopieerder.KopieerWaarden).%New()
+ quit Kopieerder.KopieerWaarden(Object1,Object2,flagOverwrite)
]]>
-
-
-Value1:%CacheString,Value2:%CacheString,PropertyIsCollection:%Boolean
-
-
-
-
-PropertyName:%String,OudeWaardeIsLeeg:%Boolean,NieuweWaardeIsLeeg:%Boolean,flagOverwrite:%Boolean
-1
-%Boolean
-
-
-
-
-1
-TECH.ObjectUtils.KopieerWaardenResultaat
-
-
-
-
-Object:%Library.Base,Property:%String
-1
-0
-%CacheString
-
-
-
-
-Object:%Library.Base,Property:%String,Value:%CacheString
-1
-0
-
-
-
-
-PropertyName:%String
-1
-
-