Index: TECH/ObjectUtils/impl/Differenciator.cls.xml
===================================================================
diff -u -r2844 -r2883
--- TECH/ObjectUtils/impl/Differenciator.cls.xml (.../Differenciator.cls.xml) (revision 2844)
+++ TECH/ObjectUtils/impl/Differenciator.cls.xml (.../Differenciator.cls.xml) (revision 2883)
@@ -7,39 +7,43 @@
Object:%Base,ReferenceObject:%Base
%ListOfDataTypes
'"_$classname(ReferenceObject)_"'")
+ } else {
+ #dim success As %Boolean = 1
+ #dim arrProperties As %String = ""
+ do arrProperties^vhLib.Class($classname(Object),.arrProperties,"A","A","A",$$$true)
- if PropertyIsCollection {
- if $method(WaardePropertyObject,"Count") '= $method(WaardePropertyVerwachtObject,"Count") {
- do ObjectDifferences.Insert(Property_" : "_$method(WaardePropertyObject,"Count") _" <> "_ $method(WaardePropertyVerwachtObject,"Count") )
- } else {
- set itList1 = ##class(TECH.ListIterator).%New(WaardePropertyObject)
- set itList2 = ##class(TECH.ListIterator).%New(WaardePropertyVerwachtObject)
- while itList1.HasNext() && success {
- #dim Value1 As %String = $$$LCVT(itList1.Next())
- #dim Value2 As %String = $$$LCVT(itList2.Next())
- set success = ( Value1 = Value2)
- if 'success do ObjectDifferences.Insert("Item "_itList1.Key()_" verschillend : *"_Value1 _ "* <> *"_Value2_"*")
+ set itProperties = ##class(TECH.ArrayOneDimIterator).%New(.arrProperties)
+ while itProperties.HasNext() {
+ #dim PropertyInfo As %list = itProperties.Next()
+ #dim Property As %String = itProperties.Key()
+
+ continue:$ListGet(PropertyInfo,4)
+
+ #dim PropertyIsCollection As %Boolean = $length($list(PropertyInfo,3))
+
+ #dim WaardePropertyObject As %CacheString = ..GeefWaarde(Object,Property)
+ #dim WaardePropertyVerwachtObject As %CacheString = ..GeefWaarde(ReferenceObject,Property)
+
+ if PropertyIsCollection {
+ if $method(WaardePropertyObject,"Count") '= $method(WaardePropertyVerwachtObject,"Count") {
+ do ObjectDifferences.Insert(Property_" : "_$method(WaardePropertyObject,"Count") _" <> "_ $method(WaardePropertyVerwachtObject,"Count") )
+ } else {
+ set itList1 = ##class(TECH.ListIterator).%New(WaardePropertyObject)
+ set itList2 = ##class(TECH.ListIterator).%New(WaardePropertyVerwachtObject)
+ while itList1.HasNext() && success {
+ #dim Value1 As %String = $$$LCVT(itList1.Next())
+ #dim Value2 As %String = $$$LCVT(itList2.Next())
+ set success = ( Value1 = Value2)
+ if 'success do ObjectDifferences.Insert("Item "_itList1.Key()_" verschillend : *"_Value1 _ "* <> *"_Value2_"*")
+ }
}
+ } elseif WaardePropertyObject '= WaardePropertyVerwachtObject {
+ do ObjectDifferences.Insert(Property_" : "_WaardePropertyObject _" <> "_ WaardePropertyVerwachtObject )
}
- } elseif WaardePropertyObject '= WaardePropertyVerwachtObject {
- do ObjectDifferences.Insert(Property_" : "_WaardePropertyObject _" <> "_ WaardePropertyVerwachtObject )
}
}