summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/DirectReference.java
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2005-02-08 20:17:26 +0000
committerMark Spruiell <mes@zeroc.com>2005-02-08 20:17:26 +0000
commit6b669e5ba099f8ae780faae2a4865fc611f178a9 (patch)
treea34ba4e9bcf23352147a8b95fc8d67ec6a08d65a /java/src/IceInternal/DirectReference.java
parentchanging sequence unmarshaling for fixed-length types (diff)
downloadice-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.java31
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