Index: vhLib/Class.mac.rou =================================================================== diff -u -r762 -r909 --- vhLib/Class.mac.rou (.../Class.mac.rou) (revision 762) +++ vhLib/Class.mac.rou (.../Class.mac.rou) (revision 909) @@ -3,22 +3,28 @@ -ConstructClone(oRef,NewClass,ConstructMethod) +ConstructClone(oRef,NewClass,ConstructMethod,lbSkip) - new arrFrom , arrTo + new arrFrom , arrTo , arrHULP set NewClass = $get(NewClass) set:'$Length(NewClass) NewClass = oRef.%ClassName(1) do arrProperties^vhLib.Class(oRef.%ClassName(1),.arrFrom,"A","A","A") do arrProperties^vhLib.Class(NewClass,.arrTo,"A","A","A") - set Property = "" + new Property set Property = "" for set Property = $order(arrFrom(Property)) quit:Property="" do . if arrFrom(Property)'=$get(arrTo(Property)) Kill arrFrom(Property) for set Property = $order(arrTo(Property)) quit:Property="" do - . if arrTo(Property)'=$get(arrFrom(Property)) Kill arrTo(Property) + . if arrTo(Property)'=$get(arrFrom(Property)) Kill arrFrom(Property) + new i + for i = 1 :1 : $listlength(lbSkip) { + set Property = $listget(lbSkip,i) + kill:$length(Property) arrFrom(Property) + } + new oRefClone set oRefClone = $zobjClassMethod(NewClass,$get(ConstructMethod,"%New")) Do CopyProperties(oRef,oRefClone,.arrFrom) quit oRefClone @@ -167,6 +173,7 @@ BuildarrEmbeddedProperties(ClassName,Property,arrEmbeddedProperties) new QuitFlag set QuitFlag = 0 new Counter set Counter = 1 + new objClass while 'QuitFlag { if ##class(%Library.CompiledProperty).%ExistsId(ClassName_"."_$piece(Property,".",Counter))