in dbus-java-utils/src/main/java/org/freedesktop/dbus/viewer/DBusViewer.java [177:228]
private DBusTableModel listDBusConnection(boolean users, boolean owners, DBusConnection conn) throws DBusException {
DBusTableModel model = new DBusTableModel();
DBus dbus = conn.getRemoteObject("org.freedesktop.DBus", "/org/freedesktop/DBus", DBus.class);
String[] names = dbus.ListNames();
ParsingContext p = new ParsingContext(conn);
for (String name : names) {
List<DBusEntry> results = new ArrayList<DBusEntry>();
try {
// String objectpath = '/' + name.replace('.', '/');
p.visitNode(name, "/");
} catch (DBusException e) {
e.printStackTrace();
} catch (DBusExecutionException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
results = p.getResult();
p.reset();
if (results.size() > 0) {
if (users) {
try {
final UInt32 user = dbus.GetConnectionUnixUser(name);
for (DBusEntry entry : results) {
entry.setUser(user);
}
} catch (DBusExecutionException exDbe) {
}
}
if (!name.startsWith(":") && owners) {
try {
final String owner = dbus.GetNameOwner(name);
for (DBusEntry entry : results) {
entry.setOwner(owner);
}
} catch (DBusExecutionException exDbe) {
}
}
for (DBusEntry entry : results) {
model.add(entry);
}
}
}
return model;
}