code: public T get(Object term) {
          // Check that an index vector does not already exist.
          T v = termToItem.get(term);
          if (v == null) {
              synchronized (this) {
                  // Confirm that some other thread has not created an index
                  // vector for this term.
                  v = termToItem.get(term);
                  if (v == null) {
                      // Generate the index vector for this term and store it.
                      v = generator.generate();
                      termToItem.put((String) term, v);
                  }
              }
          }
          return v;
      }
docs: Returns a {@code T} for the given term, if no mapping for
  {@code term} then a new vaue is generated, stored, and returned.
  
  @param term The term specifying the item to return.
  
  @return A generated item corresponding to {@code term}.