diff options
author | Matthew Johnson <mjj29@qadesh.matthew.ath.cx> | 2009-03-25 22:44:06 +0000 |
---|---|---|
committer | Matthew Johnson <mjj29@qadesh.matthew.ath.cx> | 2009-03-25 22:44:06 +0000 |
commit | 9acbe13adf1e7ed32fd056571e4a8b4e2af12075 (patch) | |
tree | 7fdcc23230f3bf9565e50b8b674e9fcefae50eeb /org/freedesktop | |
parent | 6f55d0977bf650932925f37c389a2540bbef2148 (diff) | |
parent | 729de4cb9b6ed0fa3524d7c648da243067804057 (diff) |
fix Path returns from implicit variants
Diffstat (limited to 'org/freedesktop')
-rw-r--r-- | org/freedesktop/dbus/ObjectPath.java | 6 | ||||
-rw-r--r-- | org/freedesktop/dbus/Path.java | 4 | ||||
-rw-r--r-- | org/freedesktop/dbus/test/TestRemoteInterface.java | 4 | ||||
-rw-r--r-- | org/freedesktop/dbus/test/TestSignalInterface.java | 15 | ||||
-rw-r--r-- | org/freedesktop/dbus/test/test.java | 45 | ||||
-rw-r--r-- | org/freedesktop/dbus/test/test_p2p_server.java | 3 |
6 files changed, 68 insertions, 9 deletions
diff --git a/org/freedesktop/dbus/ObjectPath.java b/org/freedesktop/dbus/ObjectPath.java index 2cd177e..409d26d 100644 --- a/org/freedesktop/dbus/ObjectPath.java +++ b/org/freedesktop/dbus/ObjectPath.java @@ -10,16 +10,14 @@ */ package org.freedesktop.dbus; -class ObjectPath +class ObjectPath extends Path { public String source; - public String path; // public DBusConnection conn; public ObjectPath(String source, String path/*, DBusConnection conn*/) { + super(path); this.source = source; - this.path = path; // this.conn = conn; } - public String toString() { return path; } } diff --git a/org/freedesktop/dbus/Path.java b/org/freedesktop/dbus/Path.java index 449604d..baaa7a6 100644 --- a/org/freedesktop/dbus/Path.java +++ b/org/freedesktop/dbus/Path.java @@ -10,9 +10,9 @@ */ package org.freedesktop.dbus; -public final class Path implements Comparable<Path> +public class Path implements Comparable<Path> { - private String path; + protected String path; public Path(String path) { this.path = path; diff --git a/org/freedesktop/dbus/test/TestRemoteInterface.java b/org/freedesktop/dbus/test/TestRemoteInterface.java index 0379d4e..4417695 100644 --- a/org/freedesktop/dbus/test/TestRemoteInterface.java +++ b/org/freedesktop/dbus/test/TestRemoteInterface.java @@ -49,4 +49,8 @@ public interface TestRemoteInterface extends DBusInterface public int[][] teststructstruct(TestStruct3 in); @Description("Regression test for #13291") public void reg13291(byte[] as, byte[] bs); + /* test lots of things involving Path */ + public Path pathrv(Path a); + public List<Path> pathlistrv(List<Path> a); + public Map<Path,Path> pathmaprv(Map<Path,Path> a); } diff --git a/org/freedesktop/dbus/test/TestSignalInterface.java b/org/freedesktop/dbus/test/TestSignalInterface.java index 18cf3e6..dc3d1be 100644 --- a/org/freedesktop/dbus/test/TestSignalInterface.java +++ b/org/freedesktop/dbus/test/TestSignalInterface.java @@ -14,10 +14,12 @@ import org.freedesktop.DBus.Description; import org.freedesktop.dbus.DBusInterface; import org.freedesktop.dbus.DBusMemberName; import org.freedesktop.dbus.DBusSignal; +import org.freedesktop.dbus.Path; import org.freedesktop.dbus.UInt32; import org.freedesktop.dbus.exceptions.DBusException; import java.util.List; +import java.util.Map; /** * A sample signal with two parameters @@ -61,4 +63,17 @@ public interface TestSignalInterface extends DBusInterface this.otherpath = otherpath; } } + public static class TestPathSignal extends DBusSignal + { + public final Path otherpath; + public final List<Path> pathlist; + public final Map<Path,Path> pathmap; + public TestPathSignal(String path, Path otherpath, List<Path> pathlist, Map<Path,Path> pathmap) throws DBusException + { + super(path, otherpath, pathlist, pathmap); + this.otherpath = otherpath; + this.pathlist = pathlist; + this.pathmap = pathmap; + } + } } diff --git a/org/freedesktop/dbus/test/test.java b/org/freedesktop/dbus/test/test.java index 36853c8..0a38cfa 100644 --- a/org/freedesktop/dbus/test/test.java +++ b/org/freedesktop/dbus/test/test.java @@ -307,7 +307,9 @@ class testclass implements TestRemoteInterface, TestRemoteInterface2, TestSignal } public <A> void Set (String interface_name, String property_name, A value) {} public Map<String, Variant> GetAll (String interface_name) { return new HashMap<String,Variant>(); } - + public Path pathrv(Path a) { return a; } + public List<Path> pathlistrv(List<Path> a) { return a; } + public Map<Path,Path> pathmaprv(Map<Path,Path> a) { return a; } } /** @@ -333,6 +335,18 @@ class renamedsignalhandler implements DBusSigHandler<TestSignalInterface2.TestRe /** * Typed signal handler */ +class pathsignalhandler implements DBusSigHandler<TestSignalInterface.TestPathSignal> +{ + /** Handling a signal */ + public void handle(TestSignalInterface.TestPathSignal t) + { + System.out.println("Path sighandler: "+t); + } +} + +/** + * Typed signal handler + */ class signalhandler implements DBusSigHandler<TestSignalInterface.TestSignal> { /** Handling a signal */ @@ -476,6 +490,7 @@ public class test String source = dbus.GetNameOwner("foo.bar.Test"); clientconn.addSigHandler(TestSignalInterface.TestArraySignal.class, source, peer, new arraysignalhandler()); clientconn.addSigHandler(TestSignalInterface.TestObjectSignal.class, new objectsignalhandler()); + clientconn.addSigHandler(TestSignalInterface.TestPathSignal.class, new pathsignalhandler()); badarraysignalhandler<TestSignalInterface.TestSignal> bash = new badarraysignalhandler<TestSignalInterface.TestSignal>(); clientconn.addSigHandler(TestSignalInterface.TestSignal.class, bash); clientconn.removeSigHandler(TestSignalInterface.TestSignal.class, bash); @@ -520,10 +535,10 @@ public class test /** This gets a remote object matching our bus name and exported object path. */ Introspectable intro = clientconn.getRemoteObject("foo.bar.Test", "/", Introspectable.class); /** Get introspection data */ - String data = intro.Introspect(); + String data;/* = intro.Introspect(); if (null == data || !data.startsWith("<!DOCTYPE")) fail("Introspection data invalid"); - System.out.println("Got Introspection Data: \n"+data); + System.out.println("Got Introspection Data: \n"+data);*/ intro = clientconn.getRemoteObject("foo.bar.Test", "/Test", Introspectable.class); /** Get introspection data */ data = intro.Introspect(); @@ -547,6 +562,30 @@ public class test /** Call the remote object and get a response. */ String rname = tri.getName(); System.out.println("Got Remote Name: "+rname); + + Path path = new Path("/nonexistantwooooooo"); + Path p = tri.pathrv(path); + System.out.println(path.toString()+" => "+p.toString()); + if (!path.equals(p)) fail("pathrv incorrect"); + List<Path> paths = new Vector<Path>(); + paths.add(path); + List<Path> ps = tri.pathlistrv(paths); + System.out.println(paths.toString()+" => "+ps.toString()); + if (!paths.equals(ps)) fail("pathlistrv incorrect"); + Map<Path, Path> pathm = new HashMap<Path, Path>(); + pathm.put(path, path); + Map<Path, Path> pm = tri.pathmaprv(pathm); + System.out.println(pathm.toString()+" => "+pm.toString()); + System.out.println(pm.containsKey(path)+" "+pm.get(path)+" "+path.equals(pm.get(path))); + System.out.println(pm.containsKey(p)+" "+pm.get(p)+" "+p.equals(pm.get(p))); + for (Path q: pm.keySet()) { + System.out.println(q); + System.out.println(pm.get(q)); + } + if (!pm.containsKey(path) || !path.equals(pm.get(path))) fail("pathmaprv incorrect"); + + serverconn.sendSignal(new TestSignalInterface.TestPathSignal("/Test", path, paths, pathm)); + Collator col = Collator.getInstance(); col.setDecomposition(Collator.FULL_DECOMPOSITION); col.setStrength(Collator.PRIMARY); diff --git a/org/freedesktop/dbus/test/test_p2p_server.java b/org/freedesktop/dbus/test/test_p2p_server.java index 1025bda..10201a9 100644 --- a/org/freedesktop/dbus/test/test_p2p_server.java +++ b/org/freedesktop/dbus/test/test_p2p_server.java @@ -65,6 +65,9 @@ public class test_p2p_server implements TestRemoteInterface public void reg13291(byte[] as, byte[] bs) { } + public Path pathrv(Path a) { return a; } + public List<Path> pathlistrv(List<Path> a) { return a; } + public Map<Path,Path> pathmaprv(Map<Path,Path> a) { return a; } public boolean isRemote() { return false; } public float testfloat(float[] f) { |