hive-protolib/src/main/java/com/streamsets/pipeline/stage/lib/hive/cache/HMSCache.java
public <T extends HMSCacheSupport.HMSCacheInfo> void put(
      HMSCacheType cacheType,
      String qualifiedTableName,
      T hmsCacheInfo
  ) throws StageException {
    if (!cacheMap.containsKey(cacheType)) {
      throw new StageException(Errors.HIVE_16, cacheType);
    }
    cacheMap.get(cacheType).put(qualifiedTableName, Optional.of(hmsCacheInfo));
  }
public <T extends HMSCacheSupport.HMSCacheInfo> void put(
      HMSCacheType cacheType,
      String qualifiedTableName,
      T hmsCacheInfo
  ) throws StageException {
    if (!cacheMap.containsKey(cacheType)) {
      throw new StageException(Errors.HIVE_16, cacheType);
    }
    cacheMap.get(cacheType).put(qualifiedTableName, Optional.of(hmsCacheInfo));
  }
Puts/ updates the {@link HMSCache} with {@link HMSCacheSupport.HMSCacheInfo} for corresponding
{@link HMSCacheType} and qualified table name.

This method skips any locking provided by getOrLoad() and hence the caller code should not mix getOrLoad() and
put() calls in the same code.

@param cacheType {@link HMSCacheType}
@param qualifiedTableName qualified table name
@param hmsCacheInfo {@link HMSCacheSupport.HMSCacheInfo}
@param <T> {@link HMSCacheSupport.HMSCacheInfo}
@throws StageException if the {@link HMSCacheType} is not supported by {@link HMSCache}