private static void manipulateProperties(Map<String,Object> destProps, boolean isTopic, EncodingLevel encodingLevel) {
    if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(tc, "manipulateProperties", new Object[]{destProps, isTopic, encodingLevel});

    // Remove those properties that we do not want to be encoded (ever) when the
    // destination is stored in the message. These are in general things that are
    // sensible only for the local instance of the destination object, or those that
    // are stored elsewhere in the message.
    destProps.remove(JmsInternalConstants.FORWARD_ROUTING_PATH);
    destProps.remove(JmsInternalConstants.REVERSE_ROUTING_PATH);

    if (encodingLevel != EncodingLevel.FULL)
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(tc, "Removing reply header properties from list");
      // Remove any properties that are only required by the full
      // encoding ('cos we're going to use this encoding for reply destinations.
      destProps.remove(JmsInternalConstants.PRIORITY         );
      destProps.remove(JmsInternalConstants.TIME_TO_LIVE     );
      destProps.remove(JmsInternalConstants.SCOPE_TO_LOCAL_QP);
      destProps.remove(JmsInternalConstants.GATHER_MESSAGES  );
    }

    if (encodingLevel == EncodingLevel.MINIMAL)
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(tc, "Removing dest name properties from list");
      // Remove any properties that are not required by the minimal
      // encoding, which is used for reply destinations when not processing MQ source messages
      destProps.remove(JmsInternalConstants.DEST_DISCRIM     );
      destProps.remove(JmsInternalConstants.DEST_NAME        );
      destProps.remove(JmsInternalConstants.BUS_NAME         );
    }

    // Alter the map slightly to specialise for Queue and Topic.
    if (isTopic) {
      // Remove the DestName and Discriminator properties and replace
      // them with TopicSpace and TopicName.
      Object destNameObj = destProps.remove(JmsInternalConstants.DEST_NAME);
      if (destNameObj != null) destProps.put("topicSpace", destNameObj);
      Object destDiscrimObj = destProps.remove(JmsInternalConstants.DEST_DISCRIM);
      if (destDiscrimObj != null) destProps.put("topicName", destDiscrimObj);
    }
    else {
      // Remove destName and add queueName
      Object destNameObj = destProps.remove(JmsInternalConstants.DEST_NAME);
      if (destNameObj != null) destProps.put("queueName", destNameObj);
      // We could still have a discriminator, in which case rename it to our supported name
      Object destDiscrimObj = destProps.remove(JmsInternalConstants.DEST_DISCRIM);
      if (destDiscrimObj != null) destProps.put("destDiscrim", destDiscrimObj);
    }

    if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "manipulateProperies", destProps);
  }
private static void manipulateProperties ( Map < String , Object > destProps , boolean isTopic , EncodingLevel encodingLevel ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . entry ( tc , "manipulateProperties" , new Object [ ] { destProps , isTopic , encodingLevel } ) ; destProps . remove ( JmsInternalConstants . FORWARD_ROUTING_PATH ) ; destProps . remove ( JmsInternalConstants . REVERSE_ROUTING_PATH ) ; if ( encodingLevel != EncodingLevel . FULL ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) SibTr . debug ( tc , "Removing reply header properties from list" ) ; destProps . remove ( JmsInternalConstants . PRIORITY ) ; destProps . remove ( JmsInternalConstants . TIME_TO_LIVE ) ; destProps . remove ( JmsInternalConstants . SCOPE_TO_LOCAL_QP ) ; destProps . remove ( JmsInternalConstants . GATHER_MESSAGES ) ; } if ( encodingLevel == EncodingLevel . MINIMAL ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) SibTr . debug ( tc , "Removing dest name properties from list" ) ; destProps . remove ( JmsInternalConstants . DEST_DISCRIM ) ; destProps . remove ( JmsInternalConstants . DEST_NAME ) ; destProps . remove ( JmsInternalConstants . BUS_NAME ) ; } if ( isTopic ) { Object destNameObj = destProps . remove ( JmsInternalConstants . DEST_NAME ) ; if ( destNameObj != null ) destProps . put ( "topicSpace" , destNameObj ) ; Object destDiscrimObj = destProps . remove ( JmsInternalConstants . DEST_DISCRIM ) ; if ( destDiscrimObj != null ) destProps . put ( "topicName" , destDiscrimObj ) ; } else { Object destNameObj = destProps . remove ( JmsInternalConstants . DEST_NAME ) ; if ( destNameObj != null ) destProps . put ( "queueName" , destNameObj ) ; Object destDiscrimObj = destProps . remove ( JmsInternalConstants . DEST_DISCRIM ) ; if ( destDiscrimObj != null ) destProps . put ( "destDiscrim" , destDiscrimObj ) ; } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( tc , "manipulateProperies" , destProps ) ; }
manipulateProperties
Sort out the Destination properties to get the set we need to encode.
Some of the properties are never encoded (FRP, RRP...) and some are only
included for a 'fullEncode'.
Queue & Topic need different 'names' for the same information.

@param destProps            A modifiable copy of the full map of JmsDestinaiton properties
@param isTopic              true if the Destination is a Topic, otherwise false
@param fullEncode           Whether a fullEncode is required.