in src/main/java/org/apache/sling/jcr/base/internal/mount/ProxySession.java [96:106]
public <F> F wrap(F source) {
if (source instanceof ProxyWrapper) {
return source;
}
return (F) (source instanceof Node ? new ProxyNode(this, (Node) source) :
source instanceof Property ? new ProxyProperty(this, (Property) source) :
source instanceof Item ? new ProxyItem<>(this, (Item) source) :
source instanceof Lock ? new ProxyLock(this, (Lock) source) :
source instanceof QueryResult ? new ProxyQueryResult(this, (QueryResult) source) :
source);
}