void parseInterface(Element iface, PrintStream out, Map<String,Integer> tuples, Map<String, Integer> structs, Set<String> exceptions) throws DBusException
void parseInterface(Element iface, PrintStream out, Map<String,Integer> tuples, Map<StructStruct, String> structs, Set<String> exceptions, Set<String> anns) throws DBusException
   void parseInterface(Element iface, PrintStream out, Map<String,Integer> tuples, Map<String, Integer> structs, Set<String> exceptions) throws DBusException   {      if (null == iface.getAttribute("name") ||            "".equals(iface.getAttribute("name"))) {         System.err.println("ERROR: Interface name was blank, failed");         System.exit(1);      }      out.println("package "+iface.getAttribute("name").replaceAll("\\.[^.]*$","")+";");      String methods = "";      String signals = "";      String annotations = "";      Set<String> imports = new TreeSet<String>();      imports.add("org.freedesktop.dbus.DBusInterface");      for (Node meth: new IterableNodeList(iface.getChildNodes())) {         if (Node.ELEMENT_NODE != meth.getNodeType()) continue;         checkNode(meth, "method", "signal", "property", "annotation");         if ("method".equals(meth.getNodeName()))            methods += parseMethod((Element) meth, imports, tuples, structs, exceptions) + "\n";         else if ("signal".equals(meth.getNodeName()))            signals += parseSignal((Element) meth, imports, structs);         else if ("property".equals(meth.getNodeName()))            System.err.println("WARNING: Ignoring property");         else if ("annotation".equals(meth.getNodeName()))            annotations += parseAnnotation((Element) meth, imports);      }      if (imports.size() > 0)          for (String i: imports)            out.println("import "+i+";");      out.print(annotations);      out.print("public interface "+iface.getAttribute("name").replaceAll("^.*\\.([^.]*)$","$1"));      out.println(" extends DBusInterface");      out.println("{");      out.println(signals);      out.println(methods);      out.println("}");   }