diff options
author | Mark Spruiell <mes@zeroc.com> | 2005-02-08 20:17:26 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2005-02-08 20:17:26 +0000 |
commit | 6b669e5ba099f8ae780faae2a4865fc611f178a9 (patch) | |
tree | a34ba4e9bcf23352147a8b95fc8d67ec6a08d65a /java/src/IceInternal/DirectReference.java | |
parent | changing sequence unmarshaling for fixed-length types (diff) | |
download | ice-6b669e5ba099f8ae780faae2a4865fc611f178a9.tar.bz2 ice-6b669e5ba099f8ae780faae2a4865fc611f178a9.tar.xz ice-6b669e5ba099f8ae780faae2a4865fc611f178a9.zip |
Reference fixes:
- Moving _secure to RoutableReference
- Fixing changeDefault()
- Fixing changeRouter() and changeLocator() to return appropriate values
Diffstat (limited to 'java/src/IceInternal/DirectReference.java')
-rw-r--r-- | java/src/IceInternal/DirectReference.java | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/java/src/IceInternal/DirectReference.java b/java/src/IceInternal/DirectReference.java index 7c7c4f7aa8c..627f39f32d8 100644 --- a/java/src/IceInternal/DirectReference.java +++ b/java/src/IceInternal/DirectReference.java @@ -44,15 +44,38 @@ public class DirectReference extends RoutableReference } public Reference - changeLocator(Ice.LocatorPrx newLocator) + changeDefault() { - return this; + // + // Return an indirect reference if a default locator is set. + // + Ice.LocatorPrx loc = getInstance().referenceFactory().getDefaultLocator(); + if(loc != null) + { + LocatorInfo newLocatorInfo = getInstance().locatorManager().get(loc); + return getInstance().referenceFactory().create(getIdentity(), null, "", ModeTwoway, false, "", null, + newLocatorInfo, false); + } + else + { + return super.changeDefault(); + } } public Reference - changeDefault() + changeLocator(Ice.LocatorPrx newLocator) { - return this; + if(newLocator != null) + { + LocatorInfo newLocatorInfo = getInstance().locatorManager().get(newLocator); + return getInstance().referenceFactory().create(getIdentity(), getContext(), getFacet(), getMode(), + getSecure(), "", null, newLocatorInfo, + getCollocationOptimization()); + } + else + { + return this; + } } public Reference |