25 lines
425 B
Haxe
25 lines
425 B
Haxe
package lib;
|
|
|
|
class ObjMerge {
|
|
public static function merge<T>(obj1:T, obj2:T):T {
|
|
if (obj1 == null) {
|
|
return obj2;
|
|
}
|
|
|
|
if (obj2 == null) {
|
|
return obj1;
|
|
}
|
|
|
|
var rtn:T = Reflect.copy(obj1);
|
|
var fields = Reflect.fields(obj2);
|
|
|
|
for (field in fields) {
|
|
if (Reflect.getProperty(obj1, field) == null) {
|
|
Reflect.setProperty(rtn, field, Reflect.getProperty(obj2, field));
|
|
}
|
|
}
|
|
|
|
return (rtn : T);
|
|
}
|
|
}
|