docs: private LockedObject generateTempLockedObjects( String path ) {
          if (!tempLocks.containsKey(path)) {
              LockedObject returnObject = new LockedObject(this, path, temporary);
              String parentPath = getParentPath(path);
              if (parentPath != null) {
                  LockedObject parentLockedObject = generateTempLockedObjects(parentPath);
                  parentLockedObject.addChild(returnObject);
                  returnObject.parent = parentLockedObject;
              }
              return returnObject;
          }
          // there is already a LockedObject on the specified path
          return this.tempLocks.get(path);
      }