@Value.Lazy
    public Optional<CriteriaMirror> criteria() {
      return CriteriaMirror.find(element());
    }
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