diff options
author | Marc Laukien <marc@zeroc.com> | 2004-04-18 19:41:52 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2004-04-18 19:41:52 +0000 |
commit | e07fec1ddee2597cea696d23786a6e9a840d5bbc (patch) | |
tree | 88eab95f6bf0f205bfbc1149fe14c4cdc571c9bd /java/src/Ice/ObjectPrxHelper.java | |
parent | fixes (diff) | |
download | ice-e07fec1ddee2597cea696d23786a6e9a840d5bbc.tar.bz2 ice-e07fec1ddee2597cea696d23786a6e9a840d5bbc.tar.xz ice-e07fec1ddee2597cea696d23786a6e9a840d5bbc.zip |
attempt to add casts to ObjectPrxHelper
Diffstat (limited to 'java/src/Ice/ObjectPrxHelper.java')
-rw-r--r-- | java/src/Ice/ObjectPrxHelper.java | 67 |
1 files changed, 61 insertions, 6 deletions
diff --git a/java/src/Ice/ObjectPrxHelper.java b/java/src/Ice/ObjectPrxHelper.java index cf4001a86f4..6b02b63ca75 100644 --- a/java/src/Ice/ObjectPrxHelper.java +++ b/java/src/Ice/ObjectPrxHelper.java @@ -480,17 +480,56 @@ public class ObjectPrxHelper implements ObjectPrx } } - public final synchronized void - __checkTwowayOnly(String name) + /* + public static ObjectPrx + checkedCast(Ice.ObjectPrx b) { - if(!ice_isTwoway()) + return b; + } + + public static ObjectPrx + checkedCast(Ice.ObjectPrx b, String f) + { + ObjectPrx d = null; + if(b != null) { - TwowayOnlyException ex = new TwowayOnlyException(); - ex.operation = name; - throw ex; + Ice.ObjectPrx bb = b.ice_newFacet(f); + try + { + boolean ok = bb.ice_isA("::Object"); + assert(ok); + ObjectPrxHelper h = new ObjectPrxHelper(); + h.__copyFrom(bb); + d = h; + } + catch(Ice.FacetNotExistException ex) + { + } } + return d; } + public static ObjectPrx + uncheckedCast(Ice.ObjectPrx b) + { + return b; + } + + public static ObjectPrx + uncheckedCast(Ice.ObjectPrx b, String f) + { + ObjectPrx d = null; + if(b != null) + { + Ice.ObjectPrx bb = b.ice_newFacet(f); + ObjectPrxHelper h = new ObjectPrxHelper(); + h.__copyFrom(bb); + d = h; + } + return d; + } + */ + public final boolean equals(java.lang.Object r) { @@ -595,6 +634,22 @@ public class ObjectPrxHelper implements ObjectPrx throw ex; } + public final void + __checkTwowayOnly(String name) + { + // + // No mutex lock necessary, there is nothing mutable in this + // operation. + // + + if(!ice_isTwoway()) + { + TwowayOnlyException ex = new TwowayOnlyException(); + ex.operation = name; + throw ex; + } + } + public final synchronized _ObjectDel __getDelegate() { |