code: public StorableIndex<S> reverse() {
          Direction[] directions = mDirections;
  
          specified: {
              for (int i=directions.length; --i>=0; ) {
                  if (directions[i] != Direction.UNSPECIFIED) {
                      break specified;
                  }
              }
              // Completely unspecified direction, so nothing to reverse.
              return this;
          }
  
          directions = directions.clone();
          for (int i=directions.length; --i>=0; ) {
              directions[i] = directions[i].reverse();
          }
  
          return new StorableIndex<S>(mProperties, directions, mUnique, mClustered, false);
      }
docs: Returns a StorableIndex instance with all the properties reversed.