@Value.Lazy
    public boolean useImmutableDefaults() {
      Optional<ValueImmutableInfo> immutables = features();
      if (immutables.isPresent()) {
        return immutables.get().isDefault();
      }
      return true;
    }
returns this class if it's top level or enclosing top level type.
@return accossiated top level type.
value-processor/src/org/immutables/value/processor/meta/Proto.java