code: public void cache(String key, Object o, int ttl, Object... args) {
          if (conf().cacheDisabled()) return;
          ICacheService cacheService = _cacheService;
          Serializable value = null == o ? "" : (o instanceof Serializable ? (Serializable) o : o.toString());
          if (args.length > 0) {
              StringBuilder sb = new StringBuilder(key);
              for (Object arg : args) {
                  sb.append("-").append(arg);
              }
              key = sb.toString();
          }
          cacheService.put(key, value, ttl);
      }
docs: Cache object using key and args for ttl seconds
  <p/>
  <p>Not an API for user application</p>
  
  @param key
  @param o
  @param ttl  if zero then defaultTTL used, if negative then never expire
  @param args