/** * Remove this filter from the filter list. * @param filter The filter to remove. */ public boolean removeThisMessageFilter(BaseMessageFilter filter) { if (m_filter instanceof BaseMessageFilter) { if (m_filter != filter) // Should be this one. return false; // Error m_filter = null; return true; // Success } else return (((Map)m_filter).remove(filter.getFilterID()) != null); } /**
/** * Set the owner of this value. */ public void addThisMessageFilter(BaseMessageFilter filter) { if (m_filter == null) m_filter = filter; else { if (m_filter instanceof BaseMessageFilter) { BaseMessageFilter filterFirst = (BaseMessageFilter)m_filter; m_filter = new Hashtable<String,Object>(); ((Map)m_filter).put(filterFirst.getFilterID(), filterFirst); } ((Map)m_filter).put(filter.getFilterID(), filter); } } /**
Integer intFilterID = ((BaseMessageFilter)objReturn).getFilterID(); if (intFilterID != null) // If registry ID is null. strReturn = intFilterID.toString();
/** * Add this message filter to this receive queue. * Also adds a message filter to the remote queue. * @param The message filter to add. * @return The message filter passed in. */ public void addMessageFilter(MessageFilter messageFilter) { super.addMessageFilter(messageFilter); try { // If at all possible, pass the queue's current session, so the filter is in the proper environment if (((BaseMessageFilter)messageFilter).isCreateRemoteFilter()) // Almost always true { // Create the remote version of this filter. RemoteSession remoteSession = (RemoteSession)((BaseMessageFilter)messageFilter).getRemoteSession(); BaseMessageFilter remoteFilter = m_receiveQueue.addRemoteMessageFilter((BaseMessageFilter)messageFilter, remoteSession); ((BaseMessageFilter)messageFilter).setRemoteFilterInfo(remoteFilter.getQueueName(), remoteFilter.getQueueType(), remoteFilter.getFilterID(), remoteFilter.getRegistryID()); } } catch (RemoteException ex) { ex.printStackTrace(); } } /**
remoteFilter = ((BaseMessageReceiver)messageManager.getMessageQueue(remoteFilter.getQueueName(), remoteFilter.getQueueType()).getMessageReceiver()).getMessageFilter(remoteFilter.getFilterID()); // Must look it up messageFilter.setFilterID(remoteFilter.getFilterID()); // Info to pass to client. messageFilter.setRegistryID(remoteFilter.getRegistryID()); return messageFilter; // All client needs if the name/type/and ID of the remote filter. (Don't pass the remoteFilter as it's class may not be accessable to thin).