code: public final IndirectionCache register(int storageStrategy)
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "register", "StorageStrategy="+storageStrategy);
  
          IndirectionCache cache = null;
  
          if (AbstractItem.STORE_NEVER == storageStrategy)
          {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Using UnstoredItemManager");
  
              // Defect 601995
              cache = _unstoredItemManager;
          }
          else
          {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Using StoredItemManager");
  
              // Defect 601995
              cache = _storedItemManager;
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "register", cache);
          return cache;
      }
docs: This method is used to provide an Item with the correct storage
  manager to use throughout its lifetime dependant on its storage
  strategy.
  
  @param storageStrategy
  The storage strategy of the item that is registering.
  
  @return a reference to the cache where this Indirection is managed.
  This reference should be stored for future use.