private void initClsToOwnerMap() {
        
        Map<Class<?>, Set<Class<?>>> clsToOwnersMap = buildDirectOwnedToOwnerdMap();
        
        //For each class, add owners of its super-classes to the set of the owners of that class.
        for (Class<?> cls : clsToSynFldMap.keySet()) {
            inheritSuperOwners(cls, clsToOwnersMap);
        }
        
        for (Class<?> ownedCls : clsToOwnersMap.keySet()) {
            Set<Class<?>> ownerSet = clsToOwnersMap.get(ownedCls);
            Class<?> ownerCls = CommonSuperclass.getCommonSuperclass(ownerSet);
            clsToOwnerMap.put(ownedCls, ownerCls);
        }
    }