Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew M Finkbeiner2012-08-08 21:52:29 +0000
committerAndrew M Finkbeiner2012-08-08 21:53:26 +0000
commit9c45345f522942bb4687a991a47f824ac8b895d7 (patch)
treeef10589deab86d74337edb592a2f8efd7db3036e /plugins/org.eclipse.osee.ote.client.msg/src/org/eclipse
parent262342123124ec4d53615cf3f0b5348471105ce6 (diff)
downloadorg.eclipse.osee-9c45345f522942bb4687a991a47f824ac8b895d7.tar.gz
org.eclipse.osee-9c45345f522942bb4687a991a47f824ac8b895d7.tar.xz
org.eclipse.osee-9c45345f522942bb4687a991a47f824ac8b895d7.zip
feature[ats_VJVZG]: Fix message watch data selection for playback situation.
Diffstat (limited to 'plugins/org.eclipse.osee.ote.client.msg/src/org/eclipse')
-rw-r--r--plugins/org.eclipse.osee.ote.client.msg/src/org/eclipse/osee/ote/client/msg/core/db/MessageInstance.java24
1 files changed, 19 insertions, 5 deletions
diff --git a/plugins/org.eclipse.osee.ote.client.msg/src/org/eclipse/osee/ote/client/msg/core/db/MessageInstance.java b/plugins/org.eclipse.osee.ote.client.msg/src/org/eclipse/osee/ote/client/msg/core/db/MessageInstance.java
index 77b89059d62..21b6c61be11 100644
--- a/plugins/org.eclipse.osee.ote.client.msg/src/org/eclipse/osee/ote/client/msg/core/db/MessageInstance.java
+++ b/plugins/org.eclipse.osee.ote.client.msg/src/org/eclipse/osee/ote/client/msg/core/db/MessageInstance.java
@@ -10,8 +10,10 @@
*******************************************************************************/
package org.eclipse.osee.ote.client.msg.core.db;
+import java.rmi.RemoteException;
import java.util.HashSet;
import java.util.Set;
+
import org.eclipse.osee.ote.message.Message;
import org.eclipse.osee.ote.message.commands.SubscribeToMessage;
import org.eclipse.osee.ote.message.commands.UnSubscribeToMessage;
@@ -32,8 +34,8 @@ public class MessageInstance {
private final Message msg;
private SubscriptionKey serverSubscriptionKey = null;
private int refcount = 0;
- private final Set<DataType> availableTypes = new HashSet<DataType>();
private boolean supported = true;
+ private IRemoteMessageService service;
public MessageInstance(Message msg, MessageMode mode, DataType type) {
this.msg = msg;
@@ -66,8 +68,7 @@ public class MessageInstance {
}
supported = true;
msg.setData(details.getCurrentData());
- availableTypes.clear();
- availableTypes.addAll(details.getAvailableMemTypes());
+ this.service = service;
serverSubscriptionKey = details.getKey();
return serverSubscriptionKey.getId();
}
@@ -77,7 +78,7 @@ public class MessageInstance {
service.unsubscribeToMessage(new UnSubscribeToMessage(msg.getClass().getName(), mode, type,
client.getAddressByType(msg.getClass().getName(), type)));
}
- availableTypes.clear();
+ this.service = null;
serverSubscriptionKey = null;
}
@@ -106,7 +107,20 @@ public class MessageInstance {
}
public Set<DataType> getAvailableTypes() {
- return availableTypes;
+ HashSet<DataType> set = new HashSet<DataType>();
+ if(service != null){
+ try {
+ Set<? extends DataType> envSet = service.getAvailablePhysicalTypes();
+ Set<DataType> available = msg.getAvailableMemTypes();
+ for(DataType type : available.toArray(new DataType[available.size()])){
+ if(envSet.contains(type)){
+ set.add(type);
+ }
+ }
+ } catch (RemoteException e) {
+ }
+ }
+ return set;
}
public boolean isSupported() {

Back to the top