Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package org.s1.objects;
 
 
 import java.util.List;
 import java.util.Map;

Object Merge helper
public class ObjectMerge {

    
Merge maps right map override left map

Parameters:
args
Returns:
    static Map<StringObjectmerge(List<Map<StringObject>> args) {
        if (args.size() > 1) {
            Map<StringObjectobj = args.get(0);
            for (int i = 1; i < args.size(); i++) {
                obj = mergeTwo(objargs.get(i));
            }
            return obj;
        } else if (args.size() == 1) {
            return args.get(0);
        } else {
            return null;
        }
    }

    
Merge maps right map override left map

Parameters:
args
Returns:
    static Map<StringObjectmerge(Map<StringObject>... args) {
        if (args.length > 1) {
            Map<StringObjectobj = args[0];
            for (int i = 1; i < args.lengthi++) {
                obj = mergeTwo(objargs[i]);
            }
            return obj;
        } else if (args.length == 1) {
            return args[0];
        } else {
            return null;
        }
    }

    

Parameters:
obj1
obj2
Returns:
    private static Map<StringObjectmergeTwo(Map<StringObjectobj1Map<StringObjectobj2) {
        if (obj1 == null)
            obj1 = Objects.newHashMap();
        if (obj2 == null)
            return obj1;
        final Map<StringObjectdest_map = Objects.copy(obj1);
        final Map<StringObjectsource_map = Objects.copy(obj2);
        return (Map<StringObject>) ObjectIterator.iterate(source_mapnew Closure<ObjectIterator.IterateBeanObject>() {
            @Override
            public Object call(ObjectIterator.IterateBean i) {
                if (i.getPath().indexOf("[") != -1)
                    return i.getValue();
                Object o1 = dest_map;
                if (!Objects.isNullOrEmpty(i.getPath()))
                    o1 = ObjectPath.get(dest_mapi.getPath(), null);
                if (i.getValue() instanceof Map) {
                    if (o1 != null && o1 instanceof Map) {
                        //merge maps (only simple properties)
                        for (Map.Entry<StringObjecte : ((Map<StringObject>) o1).entrySet()) {
                            if (!((Map<StringObject>) i.getValue()).containsKey(e.getKey())) {
                                ((Map<StringObject>) i.getValue()).put(e.getKey(), e.getValue());
                            }
                        }
                    }
                    //o = o2 << o;
                } else if (i.getValue() instanceof List) {
                    //if(o1 && o1 instanceof List)
                    //o2 = o2 << o1;
                }
                return i.getValue();
            }
        });
    }
New to GrepCode? Check out our FAQ X