summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/ObserverHelper.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/IceInternal/ObserverHelper.java')
-rw-r--r--java/src/IceInternal/ObserverHelper.java65
1 files changed, 65 insertions, 0 deletions
diff --git a/java/src/IceInternal/ObserverHelper.java b/java/src/IceInternal/ObserverHelper.java
new file mode 100644
index 00000000000..754a57098bf
--- /dev/null
+++ b/java/src/IceInternal/ObserverHelper.java
@@ -0,0 +1,65 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2012 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+package IceInternal;
+
+import Ice.Instrumentation.CommunicatorObserver;
+import Ice.Instrumentation.InvocationObserver;
+
+public final class ObserverHelper
+{
+ static public InvocationObserver
+ get(Instance instance, String op)
+ {
+ CommunicatorObserver obsv = instance.initializationData().observer;
+ if(obsv != null)
+ {
+ InvocationObserver observer = obsv.getInvocationObserver(null, op, _emptyContext);
+ if(observer != null)
+ {
+ observer.attach();
+ }
+ return observer;
+ }
+ return null;
+ }
+
+ static public InvocationObserver
+ get(Ice.ObjectPrx proxy, String op)
+ {
+ return get(proxy, op, null);
+ }
+
+ static public InvocationObserver
+ get(Ice.ObjectPrx proxy, String op, java.util.Map<String, String> context)
+ {
+ CommunicatorObserver obsv =
+ ((Ice.ObjectPrxHelperBase)proxy).__reference().getInstance().initializationData().observer;
+ if(obsv != null)
+ {
+ InvocationObserver observer;
+ if(context == null)
+ {
+ observer = obsv.getInvocationObserver(proxy, op, _emptyContext);
+ }
+ else
+ {
+ observer = obsv.getInvocationObserver(proxy, op, context);
+ }
+ if(observer != null)
+ {
+ observer.attach();
+ }
+ return observer;
+ }
+ return null;
+ }
+
+ private static final java.util.Map<String, String> _emptyContext = new java.util.HashMap<String, String>();
+}