code: public Object getValue() {
      if (!type.isCachable() || cachedValue == null) {
        cachedValue = type.getValue(this);
      }
      return cachedValue;
    }
docs: value //////////////////////////////////////////////////////////////////////