code: protected MithraDataObject addToIndicies(MithraDataObject result, int nonDatedPkHashCode)
      {
          MithraDataObject removed = (MithraDataObject) this.semiUniqueDatedIndex.remove(result);
          MithraDataObject toPut;
          if (removed != null && removed != result)
          {
              for (int i = 2; i < indices.length; i++)
              {
                  indices[i].remove(removed);
              }
              removed.copyNonPkAttributes(result);
              removed.zIncrementDataVersion();
              toPut = removed;
              result.zSetDataVersion(REMOVED_VERSION);
          }
          else
          {
              toPut = copyDataForCacheIfNotInTransaction(result);
          }
          this.semiUniqueDatedIndex.put(toPut, nonDatedPkHashCode);
          for (int i = 2; i < this.indices.length; i++)
          {
              indices[i].put(toPut);
          }
          return toPut;
      }
docs: /* unsynchronized