if (List.class.isAssignableFrom(a.getType())) { for (Object o: (List) a.getValue()) vs.addAll(Primitize(new Variant(o)));   } else if (Map.class.isAssignableFrom(a.getType())) { for (Object o: ((Map) a.getValue()).keySet()) { vs.addAll(Primitize(new Variant(o))); vs.addAll(Primitize(new Variant(((Map)a.getValue()).get(o)))); }   } else if (Struct.class.isAssignableFrom(a.getType())) { try { for (Object o: ((Struct) a.getValue()).getParameters()) vs.addAll(Primitize(new Variant(o))); } catch (DBusException DBe) { throw new DBusExecutionException(DBe.getMessage()); }   } else { vs.add(a); }
   public List<Variant> Primitize(Variant a)   {      done.add("org.freedesktop.DBus.Binding.Tests.Primitize");      notdone.remove("org.freedesktop.DBus.Binding.Tests.Primitize");      List<Variant> vs = new Vector<Variant>();      // TODO: do stuff      return vs;   }