code: private FetchPath getPathProperties(JsonGenerator jsonGenerator) {
          FetchPath fetchPath = EbeanUtils.getRequestFetchPath();
          if (fetchPath != null) {
              JsonStreamContext context = jsonGenerator.getOutputContext();
              JsonStreamContext parent = context.getParent();
              if (parent == null) {
                  return fetchPath;
              }
              StringBuilder path = new StringBuilder();
              while (parent != null && !parent.inRoot()) {
                  if (parent != context.getParent()) {
                      path.insert(0, '.');
                  }
                  path.insert(0, parent.getCurrentName());
                  parent = parent.getParent();
              }
              String fp = path.toString();
              PathProperties fetch = new PathProperties();
              EbeanPathProps src = (EbeanPathProps) fetchPath;
              String cp = fp + ".";
              for (BeanPathProperties.Props prop : src.getPathProps()) {
                  String pp = prop.getPath();
                  if (pp != null) {
                      if (pp.equals(fp)) {
                          addToFetchPath(fetch, null, prop);
                      } else if (pp.startsWith(cp)) {
                          addToFetchPath(fetch, pp.substring(cp.length()), prop);
                      }
                  }
              }
  
              return fetch;
          }
          return null;
      }
docs: only first call return FetchPath
  <p>
  and then call is bean sub-path (property)
  
  @return fetch path or null