public static RoutingTable deserializeRoutingTable(CorbaRoutingTable corbaRoutingTable) {
        if (corbaRoutingTable == null) {
            throw new NullPointerException("Cannot transform a null value to a Host object");
        }

        RoutingTable routingTable = new RoutingTable();
        Host localhost = deserializeHost(corbaRoutingTable.peer);
        routingTable.setLocalhost(localhost);

        int levelIndex = 0;
        for (PeerReference[] serializedLevel : corbaRoutingTable.refs) {
            for (PeerReference serializedHost : serializedLevel) {
                routingTable.addReference(levelIndex, deserializeHost(serializedHost));
            }
            levelIndex++;
        }
        return routingTable;
    }