diff options
author | Benoit Foucher <benoit@zeroc.com> | 2008-01-15 10:15:19 +0100 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2008-01-15 10:15:19 +0100 |
commit | f00672fd53741dc528b81ed7f53dcca8276c2014 (patch) | |
tree | 3625b90e69b8b3ffefc35567c1eeafb2ef07c276 /java/src/IceInternal/Reference.java | |
parent | More documentation changes wrt mcpp usage. (diff) | |
download | ice-f00672fd53741dc528b81ed7f53dcca8276c2014.tar.bz2 ice-f00672fd53741dc528b81ed7f53dcca8276c2014.tar.xz ice-f00672fd53741dc528b81ed7f53dcca8276c2014.zip |
Fixed bug 1359
Diffstat (limited to 'java/src/IceInternal/Reference.java')
-rw-r--r-- | java/src/IceInternal/Reference.java | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/java/src/IceInternal/Reference.java b/java/src/IceInternal/Reference.java index eed4cd7693a..55f947e9880 100644 --- a/java/src/IceInternal/Reference.java +++ b/java/src/IceInternal/Reference.java @@ -150,11 +150,23 @@ public abstract class Reference implements Cloneable return r; } + public Reference + changeCompress(boolean newCompress) + { + if(_overrideCompress && _compress == newCompress) + { + return this; + } + Reference r = _instance.referenceFactory().copy(this); + r._compress = newCompress; + r._overrideCompress = true; + return r; + } + public abstract Reference changeSecure(boolean newSecure); public abstract Reference changePreferSecure(boolean newPreferSecure); public abstract Reference changeRouter(Ice.RouterPrx newRouter); public abstract Reference changeLocator(Ice.LocatorPrx newLocator); - public abstract Reference changeCompress(boolean newCompress); public abstract Reference changeTimeout(int newTimeout); public abstract Reference changeConnectionId(String connectionId); public abstract Reference changeCollocationOptimization(boolean newCollocationOptimization); @@ -362,6 +374,15 @@ public abstract class Reference implements Cloneable return false; } + if(_overrideCompress != r._overrideCompress) + { + return false; + } + if(_overrideCompress && _compress != r._compress) + { + return false; + } + return true; } @@ -392,6 +413,8 @@ public abstract class Reference implements Cloneable protected int _hashValue; protected boolean _hashInitialized; + protected boolean _overrideCompress; + protected boolean _compress; // Only used if _overrideCompress == true protected Reference(Instance inst, @@ -415,5 +438,7 @@ public abstract class Reference implements Cloneable _context = ctx == null ? _emptyContext : ctx; _facet = fac; _hashInitialized = false; + _overrideCompress = false; + _compress = false; } } |