code: Reference getReference() {
  
          if (TraceComponent.isAnyTracingEnabled() && TRACE.isEntryEnabled()) {
              SibTr.entry(this, TRACE, "getReference");
          }
  
          // Create a reference object describing this class
          final Reference reference = new Reference(getConnectionType(),
                          getClass().getName(), null);
  
          // Make sure no-one can pull the rug from beneath us.
          synchronized (_properties) {
  
              // Convert the map of properties into an encoded form, where the
              // keys have the necessary prefix on the front, and the values are
              // all Strings.
              final Map encodedMap = JmsJcaReferenceUtils.getInstance()
                              .getStringEncodedMap(_properties, defaultJNDIProperties);
  
              // Now turn the encoded map into the reference items.
              for (final Iterator iterator = encodedMap.entrySet().iterator(); iterator
                              .hasNext();) {
  
                  final Map.Entry entry = (Map.Entry) iterator.next();
                  final String prefixedKey = (String) entry.getKey();
                  final String stringForm = (String) entry.getValue();
  
                  // Store the prefixed key and value in string form.
                  reference.add(new StringRefAddr(prefixedKey, stringForm));
  
              }
  
          }
  
          if (TraceComponent.isAnyTracingEnabled() && TRACE.isEntryEnabled()) {
              SibTr.exit(TRACE, "getReference", reference);
          }
          return reference;
  
      }
docs: Returns a reference for this managed connection factory.
  
  @return a reference for this managed connection factory